【问题标题】:Difference between writerow() and writerows() methods of Python csv modulePython csv 模块的 writerow() 和 writerows() 方法的区别
【发布时间】:2021-11-10 04:53:49
【问题描述】:

我是 Python 领域的新手。最近我一直在对 CSV 文件进行一些 I/O 操作,我在 csv 模块中发现了两个名称非常相似的方法 - writerow()writerows()。从文档中我不太清楚这种差异。我尝试搜索一些示例,但它们似乎几乎可以互换使用。

谁能帮忙澄清一下?

【问题讨论】:

    标签: python csv


    【解决方案1】:

    writerow 需要一个可迭代的单元格来写入:

    writerow(["foo", "bar", "spam"])
    ->
    foo,bar,spam
    

    writerows 接受一个可迭代的单元格迭代:

    writerows([["foo", "bar", "spam"],
               ["oof", "rab", "maps"],
               ["writerow", "isn't", "writerows"]])
    ->
    foo,bar,spam
    oof,rab,maps,
    writerow,isn't,writerows
    

    所以writerow 获取一维数据(一行),writerows 获取二维数据(多行)。

    【讨论】:

    • 这两种方法有没有性能比较?
    • @TheSohan 我没有做过比较,但如果我不得不猜测,如果您在可迭代中已经有多行,我会把钱放在 writerows 上
    【解决方案2】:

    writerows(seq) 等价于:

    for item in seq:
        writerow(item)
    

    所以唯一的区别是writerows 允许你传递多个值!

    【讨论】:

      【解决方案3】:

      技术区别在于 writerow 会将值列表写入单行,而 writerows 将从包含一个或多个列表的缓冲区写入多行。

      实际的区别是 writerows 会更快,尤其是当您有大量写入要执行时,因为它可以一次执行所有操作。

      【讨论】:

      • 虽然您的帖子回答了这个问题,但请考虑添加一些相同的代码示例。
      猜你喜欢
      • 2012-09-26
      • 2017-08-28
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 2010-09-14
      • 2011-12-18
      • 2016-04-23
      相关资源
      最近更新 更多