如何添加到列表西里尔符号

时间:2017-11-24 13:26:33

标签: python

所以我有一个问题,即脚本没有将Cyrillic符号添加到列表中,我收到此错误:

  

Traceback(最近一次调用最后一次):文件   “c:\ Users \ Viktor \ Desktop \ Folder Compare.py”,第23行,in       print(list_script)文件“C:\ Users \ Viktor \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ encodings \ cp1252.py”,   第19行,编码       return codecs.charmap_encode(input,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)

2 个答案:

答案 0 :(得分:2)

问题是你打印的地方有cp1252编码。此编码不能代表加密字符,因此在您尝试打印时会引发错误。

尝试更改终端编码。

答案 1 :(得分:1)

你可以尝试将PYTHONIOENCODING环境变量设置为' UTF-8':

os.environ["PYTHONIOENCODING"] = 'UTF-8'

或更改stdout编码:

sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)