我尝试读取目录中的所有文件,但是由于它们包含空格和重音符号,因此出现错误(已经阅读了很多关于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()”不兼容
致谢
我该如何解决?
答案 0 :(得分:0)
我现在这样做:
files = [y for x in os.walk(u'.') for y in glob(os.path.join(x[0], '*.'+extension))]
请注意使用u'.'
代替"."