下面的代码多加了一个空行(" ") 每次写,而它应该只写一个 (" “)在每次写的最后。我不知道为什么。
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" 进行测试,但仍然发生同样的问题。
你不需要直接使用
os.linesep
。除非您指定 newline
设置将其关闭,否则以文本模式打开文件已经进行了换行翻译。
事实上,
os.linesep
docs特别警告你不要这样做:
在写入以文本模式(默认)打开的文件时,不要使用 os.linesep 作为行终止符;在所有平台上使用单个
代替。'\n'
import os
with open("output", "w", encoding="utf-8") as f:
for i in range(10):
f.write(str(i))
f.write('\n')