使用Python的codecs.write函数写入换行符

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

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

f.close()

由于使用了codecs.open而不是open函数,因此该代码没有将换行符写入文件中。
如何解决这个问题?

可能是Print to UTF-8 encoded file, with platform-dependent newlines?的重复问题。 - ivan_pozdeev
2个回答

3

1

我不确定你在说什么……同时向你展示如何拥有一个完整可运行的示例。

>>> 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'
>>>

基于评论,真正的答案是:

不要使用记事本


那似乎可以工作,但奇怪的是当我在记事本中打开文本文件时,没有换行符。 - wasmachien
刚试了一下notepad ++,换行符确实显示出来了。谢谢。 - wasmachien
记事本基本上是有史以来最糟糕的文本编辑器...只需从您的系统中删除它即可。 - Joran Beasley
如果文件以文本模式打开(这是情况),stdio会将\n转换为\r\n吗? - ivan_pozdeev
糟糕,codecs总是将底层流打开为二进制。 - ivan_pozdeev
йҖҡеёёеңЁеҶҷе…Ҙж—¶пјҢ'\n' дјҡиў«иҪ¬жҚўдёә os.linesep пјҲеңЁ Windows дёҠжҳҜ '\r\n'пјүгҖӮcodecs жЁЎеқ—дёҚдјҡжү§иЎҢжӯӨж“ҚдҪңгҖӮиҜ·еӢҝдҪҝз”Ёе®ғгҖӮиҜ·ж”№з”Ё io.openгҖӮ - jfs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接