【发布时间】:2021-11-10 04:53:49
【问题描述】:
我是 Python 领域的新手。最近我一直在对 CSV 文件进行一些 I/O 操作,我在 csv 模块中发现了两个名称非常相似的方法 - writerow() 和 writerows()。从文档中我不太清楚这种差异。我尝试搜索一些示例,但它们似乎几乎可以互换使用。
谁能帮忙澄清一下?
【问题讨论】:
我是 Python 领域的新手。最近我一直在对 CSV 文件进行一些 I/O 操作,我在 csv 模块中发现了两个名称非常相似的方法 - writerow() 和 writerows()。从文档中我不太清楚这种差异。我尝试搜索一些示例,但它们似乎几乎可以互换使用。
谁能帮忙澄清一下?
【问题讨论】:
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 获取二维数据(多行)。
【讨论】:
writerows(seq) 等价于:
for item in seq:
writerow(item)
所以唯一的区别是writerows 允许你传递多个值!
【讨论】:
技术区别在于 writerow 会将值列表写入单行,而 writerows 将从包含一个或多个列表的缓冲区写入多行。
实际的区别是 writerows 会更快,尤其是当您有大量写入要执行时,因为它可以一次执行所有操作。
【讨论】: