无法使用Python 2.7打开带有重音符号的文件

时间:2018-09-03 07:21:40

标签: python python-2.7 filenames diacritics

我尝试读取目录中的所有文件,但是由于它们包含空格和重音符号,因此出现错误(已经阅读了很多关于SO的帖子,但找不到任何答案)

这将返回文件列表

files = [y for x in os.walk(".") for y in glob(os.path.join(x[0], '*.pdf'))]

但是当我尝试一个一个地打开它们

for file in files:
    with open(file,"r") as f:

我遇到了这类错误(我混淆了机密字母cos):

IOError: [Errno 22] invalid mode ('r') or filename: '.\abcd?efgh (hijk? lmnop).pdf'

我相信问题是由重音引起的,但是由于是python给我提供了文件名,所以我不明白为什么它们与“ open()”不兼容

致谢

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我现在这样做:

files = [y for x in os.walk(u'.') for y in glob(os.path.join(x[0], '*.'+extension))]

请注意使用u'.'代替"."