我想把一个数据(list)写到csv文件中,但是每行后都会增加空行。
from csv import writer
list = [["Name", "Age", "Sex"], ["John", 30, "Male"]]
with open("writer.csv", "w") as csv_file:
csv_reader = writer(csv_file)
for i in range(0, len(list)):
csv_reader.writerow(list[i])
试试这个。
from csv import writer
list = [["Name", "Age", "Sex"], ["John", 30, "Male"]]
with open("writer.csv", "w", newline="") as csv_file:
csv_reader = writer(csv_file)
for i in range(0, len(list)):
csv_reader.writerow(list[i])
我刚刚添加了 newline = ""
在 open
功能
根据文档。
当向流中写入输出时,如果newline为None,则任何
'\n'
所写的字符会被翻译成系统默认的行分隔符。os.linesep
. 如果换行是''
或'\n'
,不进行翻译。如果newline是其他法律值中的任何一个,则任何的'\n'
写的字符会被翻译成给定的字符串。
os.linesep
等于 '\r\n'
因此,如果你指定 newline = None
(默认情况下是这样),任何 '\n'
转换为 '\r\n'
这就是为什么你有一个额外的新行。