我正在尝试遍历特定路径中的所有文本文件,如下所示:
path = "c:\\Python27\\test"
with open(path+'\\*.txt') as fin:
print 'test'
但这会返回:
[Errno 22] invalid mode ('r') or filename: 'C:\\Python27\\test\\*.txt'
为什么呢?什么是实现这一目标的简单方法?
我正在尝试遍历特定路径中的所有文本文件,如下所示:
path = "c:\\Python27\\test"
with open(path+'\\*.txt') as fin:
print 'test'
但这会返回:
[Errno 22] invalid mode ('r') or filename: 'C:\\Python27\\test\\*.txt'
为什么呢?什么是实现这一目标的简单方法?
你可以这样试试
for (path, dirs, files) in os.walk("c:\\Python27\\test"):
for f in files:
if f.endswith('.txt'):
print 'test'
两种简单的方法可能是:
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()
必须得到一个有效的文件名。这些*
东西是语法糖,必须单独处理。