我写了一个非常小的程序,当一行包含某个字符串时,它将一个文件的所有行复制到另一个文件。以下是完整的来源:
f_in = open("all.txt", "r")
f_out = open("all.out", "w")
for line in f_in:
if "<title>" in line:
f_out.write(line)
f_out.close()
f_in.close()
在all.txt中找到一个utf-8字符之前,这个方法非常有效。然后它没有说:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 7102: character map to <undefined>
现在我做了一个糟糕的解决方法:在目录\Python\Lib\encodings中,我复制了utf-8.py并将其重命名为cp1252.py。
从现在开始-上面的小程序运行没有问题。但必须有一个更优雅的解决方案。你能告诉我需要什么使植物素使用utf-8.py而不是cp1252.py?
我确信在没有大量转换和解码的情况下,这是可能的—只要告诉Python使用另一个解码而不是cp1252.py即可。
使用^{} 来读取和写入Unicode值:
重命名编解码器文件是最不应该做的事情。
相关问题 更多 >
编程相关推荐