Python 3.x 如何用代码解决换行问题?

Python 3.x 如何用代码解决换行问题?,python-3.x,newline,Python 3.x,Newline,我试图将一个数据(列表)写入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(

我试图将一个数据(列表)写入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])
我刚刚在
open
函数中添加了
newline=”“

根据文件:

将输出写入流时,如果换行符为None,则为any
'\n'
写入的字符将转换为系统默认行 分隔符,
os.linesep
。如果换行符是
'
'\n'
,则不需要翻译 地点。如果换行符是任何其他合法值,则任何
'\n'
写入的字符将转换为给定字符串


如果使用Windows,
os.linesep
等于
'\r\n'
,因此如果指定
newline=None
(默认情况下),任何
'\n'
都将转换为
'\r\n'
,这就是为什么您有一个额外的换行符。

对我来说很好。你确定你发布的代码是你实际运行的代码吗?@JosephSible,如果你使用Linux、Mac OS或Windows,它将终止。因为这三个操作系统使用不同的行尾标记:LF/CR/CRLF@ThunderPheonix但除非文本编辑器严重损坏,否则这不会导致换行符加倍。@Joseph,我刚刚编辑了我的答案,并做了更多解释。这里有一个非序列:“任何
'\n'
都会转换为
'\r\n'
,这就是为什么会有一个额外的[sic]换行符。”。“将
\n
转换为
\r\n
是正常的,通常不会产生额外的换行符。@Joseph可能是错误的,但如果您有一个文本edtor将
'\r'
'\n'
位解释为换行符,你会有空行。你知道有哪个真正的文本编辑器有这个bug吗?@JosephSible,不知道,只是说!