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

Python 如何迭代路径中的所有文件?,python,python-2.7,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' 为什么会这样?实现这一目标的简单方法是什么?两种简单方法可能是: import os path = "c:\\Python27\\

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

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

with open(path+'\\*.txt') as fin:
print 'test'  
但这也带来了:

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

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

两种简单方法可能是:

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'


原因是
open()
必须获取有效的文件名。
*
内容是语法上的糖分,必须单独处理。

两种简单的方法可能是:

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'

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

您可以这样尝试

for (path, dirs, files) in os.walk("c:\\Python27\\test"):
    for f in files:
        if f.endswith('.txt'):
          print 'test'
你可以这样试试

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