python - 无法使用 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()”不兼容
问候
我怎样才能解决这个问题 ?
解决方案
我现在这样做:
files = [y for x in os.walk(u'.') for y in glob(os.path.join(x[0], '*.'+extension))]
注意使用u'.'
代替"."
推荐阅读
- spring-data - 如何修复找不到类型类 java.lang.Long 的 PersistentEntity
- typescript - 从函数返回精确的泛型类型
- reactjs - React Native:如何阻止地图标记在每次状态更新时重新渲染
- python - 如何检测文本是否旋转 180 度或上下翻转
- java - 如何在 jcstress 测试中产生指令重新排序
- javascript - 基于 data-attribute 的 appendchild
- python - How use iterrows to loop dataframe through function that takes 3 arguments to populate new dataframe
- mysql - MySql,“分组”输出列而不是行
- php - 自定义路由类的 Cakephp v3 致命错误
- android - 制作导航视图覆盖工具栏