我正在尝试计算“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
它输出文本文件的内容而不是目录?我只是对去哪里或做什么感到困惑。
最佳答案
我会使用 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)
关于python - 计算一个文件夹中多个文本文件中的 "something",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974530/