write() 是与打开的文件对象关联的方法。
writerow() 是与 csvwriter 对象关联的方法。
虽然您的问题表明您希望结果由write() 函数生成,但不清楚为什么您觉得需要使用f.write() 方法来完成此任务。您尝试做的事情通常由 csv.writer() 处理>
import csv
n1 = 'n'
key1 = 'alpha_key,beta_key'
n2 = 42
key2 = 'no_comma_in_this_key'
这将创建一个文件句柄,指向一个可在磁盘上写入的打开文件。
f = open('myfile.csv', 'w')
这将创建一个写入器对象,该对象可以在后台使用该文件 (f) 将行写入文件。
wr = csv.writer(f)
为简单起见,将创建适合一行的元素作为列表中的一对字符串。
row = [str(n1), str(key1)]
将使用 csv 编写器的先天能力来创建行(使用适当的引号字符来封装错误的逗号)。
wr.writerow(row)
我们可以用第二组数据重复这些步骤,以展示它如何处理不包含逗号的键。
row = [str(n2), str(key2)]
wr.writerow(row)
当我们处理完文件后,我们应该 close() 它,以便缓冲区中的任何数据都将写入磁盘(注意:带有上下文管理器的更好,但为简单起见,使用这种方法)。
f.close()
输出如下所示,并显示了 csv 规范如何通过在具有嵌套逗号的列值周围加上引号来处理其中可能包含逗号的列。
n,"alpha_key,beta_key"
42,no_comma_in_this_key
总而言之,代码如下所示:
import csv
n1 = 'n'
key1 = 'alpha_key,beta_key'
n2 = 42
key2 = 'no_comma_in_this_key'
f = open('myfile.csv', 'w')
wr = csv.writer(f)
row = [str(n1), str(key1)]
wr.writerow(row)
row = [str(n2), str(key2)]
wr.writerow(row)
f.close()