首页 > 解决方案 > 无法使用 Python 2.7 打开带有重音符号的文件

问题描述

我尝试读取目录中的所有文件,但由于它们包含空格和重音符号,我收到错误(已经阅读了许多关于 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:

我收到这些错误(我混淆了字母,因为它是机密的):

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

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

问候

我怎样才能解决这个问题 ?

标签: pythonpython-2.7filenamesdiacritics

解决方案


我现在这样做:

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

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


推荐阅读