我正在尝试计算文件中出现的“Tmp”次数以及该计数所属的文件。我创建了一个可以工作的脚本,但我必须为每个文件设置输入文件和输出目录。为了改进它,我希望脚本在设置一次后浏览文件夹中的每个文件。
我一直在尝试:
import tkFileDialog
import glob
import os
directory = tkFileDialog.askdirectory()
for infile in glob.glob(os.path.join(directory, "*.*")):
open(infile, "r").read()
infile.count("Tmp")
目前,当我输入时,我正在计算文件名中出现“Tmp”的次数而不是实际文件:
print infile
它输出文本文件的内容但不输出目录?我只是对去哪里或做什么感到困惑。
答案 0 :(得分:1)
应该是:
data = open(infile, 'r').read()
print data.count('Tmp')
答案 1 :(得分:1)
我会使用os.walk而不是glob:
import tkFileDialog
import os
import os.path
import re
directory = tkFileDialog.askdirectory()
for dirpath, dirnames, filenames in os.walk(directory):
for filename in filenames:
path = os.path.join(dirpath, filename)
with open(path) as file:
contents = file.read()
print path[:30], contents.count('Tmp'), re.findall('Tmp\d{5}', contents)
答案 2 :(得分:0)
import os
import glob
import tkFileDialog
directory = tkFileDialog.askdirectory()
for infile in glob.glob(os.path.join(directory, '*')):
if os.path.isfile(infile):
f = open(infile)
print os.path.split(infile)[-1], f.read().count('Tmp')