我希望通过向csv文件写入新的内容行(包括换行符)来结束for循环的每个交互。我有这个:
# Set up an output csv file with column headers
with open('outfile.csv','w') as f:
f.write("title; post")
f.write("\n")
这似乎没有写出实际的\ n(换行符)文件。进一步:
# Concatenate into a row to write to the output csv file
csv_line = topic_title + ";" + thread_post
with open('outfile.csv','w') as outfile:
outfile.write(csv_line + "\n")
这也不会将outfile中的光标移动到下一行。每个循环的每次迭代都会覆盖最新的一行。
我也试过outfile.write(os.linesep)
但是没有用。
答案 0 :(得分:6)
改变' w'到了'
with open('outfile.csv','a')
答案 1 :(得分:2)
with open('outfile.csv', 'w', newline='') as f:
f.writerow(...)
可替换地:
f = csv.writer('outfile.csv', lineterminator='\n')
答案 2 :(得分:1)
我遇到同样的问题,只需要遵循:
f = csv.writer('outfile.csv', lineterminator='\n')
答案 3 :(得分:0)
如果你使用 python2 然后使用
with open('xxx.csv', 'a') as f:
writer = csv.writer(f)
writer.writerow(fields)
如果您使用的是 python3,请使用 newline=''
答案 4 :(得分:0)
请尝试:open(output_file_name.csv, 'a+', newline='') as f: