写入文件时的Python编码错误
问题描述:
我想写一些字符串文件,它不是英文的,它们是阿塞拜疆语。即使我做的UTF-8编码,我得到以下错误:写入文件时的Python编码错误
UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-12: ordinal not in range(128)
我的代码一块要写入文件如下:
t_w = text_list[y].encode('utf-8')
new_file.write(t_w.decode('utf-8'))
new_file.write('\n')
编辑
即使我做代码:
t_w = text_list[y].encode('ascii',errors='ignore')
new_file.write(t_w)
new_file.write('\n')
我得到下面的错误是:
TypeError: write() argument must be str, not bytes
答
从我能告诉t_w.decode(...)
试图将您的字符转换为ASCII,它不会编码一些阿泽里字符。没有必要对字符串进行解码,因为您想将其写入UTF-8文件,因此省略.decode(...)
部分:new_file.write(t_w)
+0
我编辑了我的答案,您可以看到发生了什么,当我按照你说的 –
在写入文件时不要解码。只需使用new_file.write(t_w)。解码('file.read()。decode('utf-8')' – Dheerendra
'),然后我得到以下错误: TypeError:写入()参数必须是str,而不是字节 –
如果您可以丢失数据你可以设置'.encode('ascii',错误='忽略')'。你可以阅读关于它的更多信息[在文档中](https://docs.python.org/3/howto/unicode.html#the-string-type)。 – blakev