Python csv.writerow写入列而不是行

Python csv.writerow写入列而不是行,python,Python,我有一个Python测试文件,它是我试图导出到csv文件中的字符串列表,因此字符串中的每个单词都位于csv文件的一列中。但是,我的代码将每个单词放在一行中的一个单独的列中。我在这个网站上阅读了其他关于类似问题的评论,他们建议将语法改为wr.writerows([csv\u data])。此修改不适用于以下代码。我是Python的初学者,因此非常感谢您对如何解决此问题的任何建议 testfile=['free', 'great', 'congratulations', 'great', 'kind

我有一个Python测试文件,它是我试图导出到csv文件中的字符串列表,因此字符串中的每个单词都位于csv文件的一列中。但是,我的代码将每个单词放在一行中的一个单独的列中。我在这个网站上阅读了其他关于类似问题的评论,他们建议将语法改为
wr.writerows([csv\u data])
。此修改不适用于以下代码。我是Python的初学者,因此非常感谢您对如何解决此问题的任何建议

testfile=['free', 'great', 'congratulations', 'great', 'kind', 'freedom']

import csv
with open("pos_words_pre.csv",'w') as resultFile_pos_pre:
    wr_pos_pre = csv.writer(resultFile_pos_pre)
    wr_pos_pre.writerow(testfile)
非常感谢你的帮助

编辑:上面的代码将把csv文件中的所有单词放在同一行中,例如:
自由,伟大,祝贺你,伟大,善良,自由

但我正在尝试创建一个文件,该文件的每个条目都在同一列中,但有一个单独的行,例如:

免费
伟大的
祝贺
伟大的
友善的
自由

我认为writerow会将每个条目写入excel csv文件中的单独一行,而不是同一行。你知道如何解决这个问题吗?

writerow
只写一行。如果要写入多行并使用此函数,则必须为每行分别调用它:

import csv
testfile=['free', 'great', 'congratulations', 'great', 'kind', 'freedom']
with open("pos_words_pre.csv",'w') as resultFile_pos_pre:
    wr_pos_pre = csv.writer(resultFile_pos_pre)
    for row in testfile:
        wr_pos_pre.writerow([row])
或者,您可以一次写入多行:

with open("pos_words_pre.csv",'w') as resultFile_pos_pre:
    wr_pos_pre = csv.writer(resultFile_pos_pre)
    wr_pos_pre.writerows(([row] for row in testfile))

请显示您希望输出文件的外观。这将输出以下行:
free,great,恭喜,great,kind,freedom
,因此我不理解这个问题。“但是,我的代码将每个单词放在一行中的单独一列中。”-嗯,是的。这就是写一行的意思,这正是一个名为
writerow
writerow()
的方法所期望的,该方法将写入一行传递给它的数据。您正在传递它
testfile
,这是一个包含六个内容的列表,它假设它们都在同一行上。使用
writerows()
而不是在末尾记下“s”。如果您只是在每行上写一个字符串,为什么要使用
csv.writer
?如果只有一个字段,它不是CSV文件。USER 8153的答案除了放置在同一列中的每个单词之间的空白行之外,还有很好的效果。但是,如果我更改wr_pos_pre=csv.writer(resultFile_pos_pre,lineterminator='\n'),则它可以正常工作。非常感谢你的帮助。