【发布时间】:2017-04-27 00:48:25
【问题描述】:
我想从目录中读取文件名并打印出它们的名称。 这是我的代码:
png_files = []
for root, dirs, files in os.walk('output'):
for file in files:
png_files.append(file)
for name in png_files:
print(name)
这有效,但仅适用于 linux(不适用于 windows),我不知道为什么。我的文件有一些日文字符,我知道问题出在其中,但不知道如何解决。
我收到这条消息:
'charmap' 编解码器无法对位置 19-27 中的字符进行编码:字符映射到
我试过encode('UTF-8')然后我得到了:
b'forecast_traffic\xe4\xb8'
我知道当你有b'' 时,这意味着它是一个字节串,所以我尝试了name.encode('UTF-8').decode(),但我再次收到相同的错误消息,如果我尝试仅编码我得到错误:
'str' 对象没有属性'decode'
有谁知道如何解决这个问题以及我的错误在哪里?
【问题讨论】:
-
Windows 控制台无法处理特殊字符。我以前在使用西班牙语字符时遇到过同样的问题。
-
@SantiPeñate-Vera 非常感谢,我花了一个小时思考问题可能出在哪里。您可以将其发布为答案,我会接受。
-
@SantiPeñate-Vera 它已修复。检查我的答案。希望它也适用于西班牙语。
标签: python python-3.x unicode windows-console