如何迭代路径中的所有文件?

时间:2013-06-13 11:47:11

标签: python python-2.7

我正在尝试迭代特定路径中的所有文本文件,如下所示:

path = "c:\\Python27\\test"

with open(path+'\\*.txt') as fin:
print 'test'  

但这会返回:

[Errno 22] invalid mode ('r') or filename: 'C:\\Python27\\test\\*.txt'

为什么会这样?什么是实现这一目标的简单方法?

2 个答案:

答案 0 :(得分:2)

你可以这样试试,

for (path, dirs, files) in os.walk("c:\\Python27\\test"):
    for f in files:
        if f.endswith('.txt'):
          print 'test'

答案 1 :(得分:1)

两种简单的方法可能是:

import os
path = "c:\\Python27\\test"

for name in os.listdir(path):
    if name.endswith('.txt'):
        fpath = os.path.join(path, name)
        with open(fpath) as fin:
            print fpath, 'opened'

import glob
path = "c:\\Python27\\test"

for fpath in glob.glob(os.path.join(path, '*.txt')):
    with open(fpath) as fin:
        print fpath, 'opened'

原因是open()必须获得有效的文件名。 *的东西是语法糖,必须单独处理。