我有一个循环应该遍历文件列表
import os
for fil in os.listdir('dir/'):
with open(fil) as f:
for line in f:
#process line
我的文件包含文字,但它们有奇怪的扩展名,例如filea.234234 fileb.34234
当我运行脚本时,我收到错误
IOError: [Errno 2] No such file or directory: 'filea.234234'
此错误的原因是什么?
PS。如果这是原因
,那么重命名它们的文件太多了答案 0 :(得分:4)
这些文件位于dir/
下,而不在工作目录中。您正在尝试打开./filea.234234
,而您应该打开dir/filea.234234
。相应地修复您的代码:
import os
for fil in os.listdir('dir/'):
with open(os.path.join("dir", fil)) as f:
for line in f:
# ...
答案 1 :(得分:0)
您还可以使用glob
模块:
import glob
import os
for filename in glob.glob(os.path.join('dir', '*')):
# etc...
在任何一种情况下,您可能希望在尝试打开文件名之前确保文件名不是目录,具体取决于您是否可以确定该目录仅包含文件。