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

问题描述 投票:0回答:2

下面的代码多加了一个空行(" ") 每次写,而它应该只写一个 (" “)在每次写的最后。我不知道为什么。

import os

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

它写入文件:“0 1个 2...9 “。我在 Windows 上使用 Python 3.9.16。我在这里遗漏了什么吗?

编辑:我也没有使用 encoding="utf-8" 进行测试,但仍然发生同样的问题。

python windows blank-line
2个回答
1
投票

你不需要直接使用

os.linesep
。除非您指定
newline
设置将其关闭,否则以文本模式打开文件已经进行了换行翻译。

事实上,

os.linesep
docs特别警告你不要这样做:

在写入以文本模式(默认)打开的文件时,不要使用 os.linesep 作为行终止符;在所有平台上使用单个

'\n'
代替。


0
投票
import os

with open("output", "w", encoding="utf-8") as f:
    for i in range(10):
        f.write(str(i))
        f.write('\n')
© www.soinside.com 2019 - 2024. All rights reserved.