我有目录结构,
F:\TestDataTestData包含20个名为node1, node2,..., node20的文件夹,每个节点文件夹包含名称为log.10.X的文件。
我需要从所有的节点文件夹中访问每个日志文件,对于这些文件夹,我已经写了一些代码,但它的意思是:File not found - log.*。
代码:
directory = "F:\TestData"
p = subprocess.Popen(["find", "./" + directory, "-name", "log.*"], stdout=subprocess.PIPE)
output, err = p.communicate()
foutput = output.split("\n")发布于 2015-04-10 02:53:10
Python与POSIX shell不同,它不会在字符串中自动执行全局操作(将*等解释为与相关目录中的文件相关的通配符)。然而,它确实为此目的提供了 module。您可以使用它获取匹配的文件名列表:
import glob
filenames = glob.glob(r'F:\TestData\node*\log.*')发布于 2015-04-10 02:49:08
您只需使用python获取目录中的文件列表即可。
import os
directory = "F:\TestData\"
file_list = os.listdir(directory)
log_list = filter(lambda x: x.startswith("log"), file_list)哦,你得编码才能迭代子目录。首先在父目录中访问os.listdir(),然后迭代子目录以获取文件
发布于 2015-04-10 03:00:22
Python的glob模块可能是一种选择。
import glob
directory = 'F:\TestData'
logcontents = [open(f,'r').read() for f in glob.glob(directory + '\node*\log.*')]https://stackoverflow.com/questions/29552389
复制相似问题