这里有 2 个代码示例,Python3:第一个使用 latin1 编码写入两个文件:
s='On écrit ça dans un fichier.'
with open('spam1.txt', 'w',encoding='ISO-8859-1') as f:
print(s, file=f)
with open('spam2.txt', 'w',encoding='ISO-8859-1') as f:
f.write(s)
Run Code Online (Sandbox Code Playgroud)
第二个读取具有相同编码的相同文件:
with open('spam1.txt', 'r',encoding='ISO-8859-1') as f:
s1=f.read()
with open('spam2.txt', 'r',encoding='ISO-8859-1') as f:
s2=f.read()
Run Code Online (Sandbox Code Playgroud)
现在,打印 s1 和 s2 我得到
On écrit ça dans un fichier.
Run Code Online (Sandbox Code Playgroud)
而不是最初的“On écrit ça dans un fichier”。
怎么了 ?我也尝试过 io.open 但我错过了一些东西。有趣的是,我对 Python2.7 及其 str.decode 方法没有这样的问题,现在它已经消失了......
有人可以帮助我吗?
我在 Python 中发现了一些非常奇怪的行为。我的一位学生在尝试查找属于两个列表的元素时犯了某种错误,他写道:
list1 and list2
Run Code Online (Sandbox Code Playgroud)
奇怪的行为是 Python 3 没有触发任何错误!
list1 and list2实际上有一个值为list2。
这有什么已知的原因吗?