Python 如何将西里尔字母符号添加到列表中
所以我有一个问题,脚本没有将西里尔字母符号添加到列表中,我得到了以下错误: 回溯(最近一次调用上次):文件 “c:\Users\Viktor\Desktop\Folder Compare.py”,第23行,在 打印(列表脚本)文件“C:\Users\Viktor\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1252.py”, 第19行,在encode中 return codecs.charmap_encode(输入,self.errors,encoding_table)[0]UnicodeEncodeError:“charmap”编解码器无法在中编码字符 位置6-11:角色映射到 我在堆栈溢出问题上找到了两种解决方案,但它们对我来说效果不好Python 如何将西里尔字母符号添加到列表中,python,Python,所以我有一个问题,脚本没有将西里尔字母符号添加到列表中,我得到了以下错误: 回溯(最近一次调用上次):文件 “c:\Users\Viktor\Desktop\Folder Compare.py”,第23行,在 打印(列表脚本)文件“C:\Users\Viktor\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1252.py”, 第19行,在encode中 return codecs.charmap_encode(输入,self
list1, list2 = ([] for i in range(2))
for dirpath, dirnames, filenames in os.walk('D:\\Folder'):
for fname in filenames:
list1.append(fname)
for list_script in list1:
print(list_script)
您可以尝试将PythonoEncoding环境变量设置为“UTF-8”:
os.environ["PYTHONIOENCODING"] = 'UTF-8'
或更改标准输出编码:
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
您可以尝试将PythonoEncoding环境变量设置为“UTF-8”:
os.environ["PYTHONIOENCODING"] = 'UTF-8'
或更改标准输出编码:
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
问题是打印的位置有cp1252编码。此编码不能表示水晶字符,因此当您尝试打印它们时会抛出错误
尝试更改终端编码 问题在于打印的位置有cp1252编码。此编码不能表示水晶字符,因此当您尝试打印它们时会抛出错误
尝试更改终端编码 我认为这不是问题所在。请提供完整错误,特别是出现错误的那一行。@ElisByberi添加了完整错误消息
UnicodeCodeError
它不是有效的Unicode字符串。因此错误出现在print
行:西里尔字母符号已成功添加,但您的系统无法显示它。您应该更多地介绍您的系统:python版本(2或3)、操作系统和默认字符集python 3.6、Windows 10、utf-8。我认为这不是问题所在。请提供完整错误,特别是出现错误的那一行。@ElisByberi添加了完整错误消息UnicodeCodeError
它不是有效的Unicode字符串。因此错误出现在print
行:西里尔字母符号已成功添加,但您的系统无法显示它。您应该更多地介绍您的系统:python版本(2或3)、操作系统和默认字符集python 3.6、Windows 10、utf-8哪条语句对您的情况有帮助?@IvanBryzzhin第二条语句甚至不起作用,因为编写器会在编码后写入字节,而sys.stdout是一个字符串流。那么您必须写入sys.stdout.buffersys.stdout.buffer
。哪条语句对您的情况有帮助?@IvanBryzzhin第二条语句甚至不起作用,因为编写器会在编码后写入字节,而sys.stdout是一个字符串流。然后您必须写入sys.stdout.buffer
。