Python将额外的空行写入文件[重复]

gc0ot86w  于 2023-04-28  发布在  Python
关注(0)|答案(2)|浏览(206)

此问题已在此处有答案

Python file.write creating extra carriage return(5个答案)
3小时前关闭
下面的代码为每次写入添加一个额外的空行(“\r”),而它应该在每次写入结束时只写入一行(“\r\n”)。我不知道为什么。

import os

with open("output", "w", encoding="utf-8") as f:
    for i in range(10):
        f.write(str(i) + os.linesep)

它写入文件:“0\r\r\n1\r\r\n2。..9\r\r\n”。我正在使用Python 3。9.16在Windows上。我是不是漏掉了什么?
编辑:我也在没有encoding=“utf-8”的情况下进行了测试,仍然出现了同样的问题。

sr4lhrrt

sr4lhrrt1#

您不需要直接使用os.linesep。在文本模式下打开文件进行写入时,会执行换行符转换,除非指定newline设置将其关闭。
事实上,os.linesep文档 * 特别警告您 * 不要这样做:
不要使用 * os。linesep* 在写入以文本模式打开的文件时作为行结束符(默认值);在所有平台上使用单个'\n'

q1qsirdb

q1qsirdb2#

import os

with open("output", "w", encoding="utf-8") as f:
    for i in range(10):
        f.write(str(i))
        f.write('\n')

相关问题