在Python

时间:2017-05-02 08:16:36

标签: python csv file-io

我希望通过向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)但是没有用。

5 个答案:

答案 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: