写入文件时的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 
+0

在写入文件时不要解码。只需使用new_file.write(t_w)。解码('file.read()。decode('utf-8')' – Dheerendra

+0

'),然后我得到以下错误: TypeError:写入()参数必须是str,而不是字节 –

+0

如果您可以丢失数据你可以设置'.encode('ascii',错误='忽略')'。你可以阅读关于它的更多信息[在文档中](https://docs.python.org/3/howto/unicode.html#the-string-type)。 – blakev

从我能告诉t_w.decode(...)试图将您的字符转换为ASCII,它不会编码一些阿泽里字符。没有必要对字符串进行解码,因为您想将其写入UTF-8文件,因此省略.decode(...)部分:new_file.write(t_w)

+0

我编辑了我的答案,您可以看到发生了什么,当我按照你说的 –