我遇到了Python的csv模块的问题。 实际上,我有一个文本语料库。我已将其转换为看似列表的列表。例如,我的数据看起来像这样
data = ["Hello", "how", "are", "you"]
["Fine", "and" ,"you"]
我想将数据导出到csv文件或文本文件。
然而,当我使用csv模块的.writerow()方法时,它只返回一个语料库列表,我不明白为什么(它甚至不是语料库的第一个......)
这是我的代码
import csv
with open('twitter_test_python.csv',"r", encoding='utf8') as csvfile:
spamreader = csv.reader(csvfile , delimiter=" ", quotechar = "'")
for line in spamreader:
test = list(set(line) - set(swl))
with open("test2.csv", 'w', encoding = 'utf8') as myfile :
wr = csv.writer(myfile)#, delimiter=';', quoting=csv.QUOTE_ALL, lineterminator = '\n')
wr.writerow([test])
有人理解我的问题吗?
非常感谢,
答案 0 :(得分:2)
每次循环时都会覆盖文件:
for line in spamreader():
尝试在循环外移动输出文件的开头:
import csv
with open('twitter_test_python.csv',"r", encoding='utf8') as csvfile:
spamreader = csv.reader(csvfile , delimiter=" ", quotechar = "'")
with open("test2.csv", 'w', encoding = 'utf8') as myfile :
wr = csv.writer(myfile)#, delimiter=';', quoting=csv.QUOTE_ALL, lineterminator = '\n')
for line in spamreader:
test = list(set(line) - set(swl))
wr.writerow([test])
这样你就不会打开输出文件并每次都覆盖它。