循环文件错误

时间:2015-02-19 23:20:07

标签: python

我有一个循环应该遍历文件列表

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。如果这是原因

,那么重命名它们的文件太多了

2 个答案:

答案 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...

在任何一种情况下,您可能希望在尝试打开文件名之前确保文件名不是目录,具体取决于您是否可以确定该目录仅包含文件。