用 Python codecs.write 写换行符

Writing newline with Python codecs.write

f = codecs.open('import.txt', 'w', 'utf-8')

for x in list:
    string = "Hello"
    f.write(string+'\n')

f.close()

出于某种原因,这段代码不会向文件写入换行符,如果我使用 open 函数而不是 codecs.open.

就会这样做

我该如何解决这个问题?

不确定您在说什么...还向您展示了如何获得完整的可运行示例

>>> import codecs
>>> f = codecs.open('import.txt', 'w', 'utf-8')
>>> f.write("hello\nworld\n")
>>> f.close()
>>> print repr(open("import.txt").read())
'hello\nworld\n'
>>>

根据评论,真正的答案是

不要使用记事本

codecs.open() does not handle newlines correctly ('U' mode is deprecated):

Underlying encoded files are always opened in binary mode. No automatic conversion of '\n' is done on reading and writing.

改用内置 open() 函数。如果您希望相同的代码适用于来自同一来源的 Python 2 和 3;你可以使用 io.open().