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'