Python 如何将西里尔字母符号添加到列表中

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

所以我有一个问题,脚本没有将西里尔字母符号添加到列表中,我得到了以下错误:

回溯(最近一次调用上次):文件 “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:角色映射到

我在堆栈溢出问题上找到了两种解决方案,但它们对我来说效果不好

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.buffer
sys.stdout.buffer
。哪条语句对您的情况有帮助?@IvanBryzzhin第二条语句甚至不起作用,因为编写器会在编码后写入字节,而sys.stdout是一个字符串流。然后您必须写入
sys.stdout.buffer