Python:如何从文件名

时间:2017-10-06 12:22:47

标签: python-2.7 encoding operating-system decoding

>>> a=os.listdir('.')
>>> a
['arabic??.exe', 'asd.exe', 'chinese??.exe', 'cyrilic??.exe', 'french\xe7\xe9\xfc.exe', 'german\xe4\xdf\xfc.exe', 'registred\xae\xa9.exe', 'sandbox.py', 'spanish\xc1\xcd\xd3.exe']
>>> for each in a:
...  os.system(os.getcwd()+'\\'+each)
...
The system cannot find the path specified.

我正在尝试用奇怪的字符打开一些文件,但上面的代码只适用于拉丁语言。我该怎么做才能获得所有文件的正确编码并正确打开它们?或者如果有解决方法吗?

请注意,上述逻辑在linux系统上运行良好。

文件名: cyrilicЧБ;中国伊艾;frenchçéü;阿拉伯شص; spanishÁÍÓ.exe;registred®©.EXE;germanäßü.exe

1 个答案:

答案 0 :(得分:0)

如果将目录路径作为Unicode字符串传递,则可以使用,例如:

os.listdir(u'.')

编辑#0:

您还需要将以下标头添加到Python脚本中:

# -*- coding: utf-8 -*-

您可以在此处详细了解:https://www.python.org/dev/peps/pep-0263/