我有一个包含40个文件的文件夹,我想循环播放。当我打印出文件的名称时,我的代码工作正常:
import os
source = 'pathtofile'
for root, dirs, filenames in os.walk(source):
for file in filenames:
print file
它将打印:
File1中
文件2
档案3
.....
档案40
但是如果我尝试在循环中打开文件/文件,我会收到以下错误。 IO错误: IOError:[Errno 2]没有这样的文件或目录:'file.txt'
这是我遇到问题的代码:
import os
import re
destdir = 'pathtofile'
files = [ f for f in os.listdir(destdir) if
os.path.isfile(os.path.join(destdir,f)) ]
for f in files:
with open(f, 'r') as var1:
for line in var1:
if re.match('(.*)exception(.*)', line):
print line
我已经验证了,我正在搜索的字符串,它确实存在于文件中。
您能否就我的代码有什么问题提供一些见解?感谢。
答案 0 :(得分:1)
这就是你想要的:
from os.path import join, isfile
files = [join(destdir, x) for x in os.listdir(destdir) if isfile(join(destdir, x))]
或者如果您知道所有文件都有.txt
扩展名,则可以执行以下操作:
from glob import glob
files = glob(join(destdir, '*.txt'))