我有list
喜欢:
('so glad', 'happy')
('it is so sad', 'sad')
我想将此列表写入CSV文件,如:
column1 column2
so glad happy
it is so sad sad
我使用以下代码执行此操作:
with open('test.csv', "a") as outfile:
for entries in my_list:
outfile.write(entries)
outfile.write("\n")
但它将
写入CSV文件column1
so glad
happy
it is so sad
sad
如何按照我的预期来完成此代码?
答案 0 :(得分:1)
import csv
with open('test.csv', 'wb') as outfile:
wr = csv.writer(outfile, quoting=csv.QUOTE_ALL)
wr.writerow(entries)
答案 1 :(得分:1)
对于python 3: 使用 writerow 编写从列表中获取的行(可迭代)
import csv
my_list =[('so glad', 'happy'),
('it is so sad', 'sad')]
with open('mycsv.csv','w+') as fileobj:
csvwriter = csv.writer(fileobj)
for row in my_list:
csvwriter.writerow(row)
或使用带有可迭代的 writerows (可迭代是可用于迭代的任何内容,因此您的my_list
是可迭代的列表)并获取行并相应地保存它们
import csv
my_list =[('so so glad', 'happy'),
('it is so sad', 'sad')]
with open('mycsv.csv','w+') as fileobj:
csvwriter = csv.writer(fileobj)
csvwriter.writerows(my_list)
对于python 2:
with open('mycsv.csv','w+') as fileobj:
使用wb而不是w +
mycsv.csv
中的输出是:
so so glad,happy
it is so sad,sad
另请注意,我在此处使用 w + 作为模式,如果csv文件已存在则会截断csv文件或创建新文件并将内容写入其中
有几种模式可以根据需要使用。 看一下python的File modes文档
在Windows上,附加到模式的'b'以二进制模式打开文件,因此还有'rb','wb'和'r + b'等模式。 Windows上的Python区分了文本和二进制文件;读取或写入数据时,文本文件中的行尾字符会自动稍微改变。这种对文件数据的幕后修改适用于ASCII文本文件,但它会破坏像JPEG或EXE文件中的二进制数据。