如何在python中的csv文件中编写元组,没有空行

xxx*_*--- 5 python csv

我正在尝试将一些元组写入csv文件.

这是我试过的:

import csv
out_file = open('csv_write.csv', 'w')
writer = csv.writer(out_file)
writer.writerow((0, 1, 2))
writer.writerow((3, 4, 5))
out_file.close()
Run Code Online (Sandbox Code Playgroud)

这有效,但不如预期.请注意电子表格中的空白行:

电子表格行的屏幕截图,显示不需要的空行

在文本编辑器中,该文件如下所示:

0,1,2
< 空行 >
3,4,5
< 空行 >

(共4行)

如果没有这些空行我怎么写?

Mar*_*nen 8

csv模块执行自己的行尾处理,并要求以特定方式打开输出文件:

out_file = open('csv_write.csv', 'wb')             # Python 2.x
out_file = open('csv_write.csv', 'w', newline='')  # Python 3.x
Run Code Online (Sandbox Code Playgroud)

参考http://docs.python.org/2.7/library/csv.html?highlight=csv#csv.writer:

......它必须在平台上以"b"标志打开,这会产生影响.

http://docs.python.org/3.3/library/csv.html?highlight=csv#csv.writer:

......它应该用newline =''打开...

您的空行是由于csv模块的默认"方言"所致excel.这会将换行符\n转换为回车符/换行符\r\n,但是在文本模式下打开输出文件"在有所作为的平台上"(Windows)也会转换\n\r\n,导致\r\r\n.这会导致您的额外空白行.