2010-08-25 46 views
1

im面临的当前问题来自以下场景。我有一个运行命令行程序的脚本来查找特定文件夹内的某个扩展名的所有文件,我们可以调用这些文件文件A.脚本的另一部分通过每个文件中的文件A中的文件名运行grep命令。存储文件A中哪些文件名和文件A的最佳方法,以及如何实现?谢谢需要列表的问题

+1

你能改说你的问题吗?添加一个或两个例子也会有所帮助。 – 2010-08-25 12:02:52

+0

您是否尝试将文件名列表保存在文件中以便稍后在另一个程序中使用? – 2010-08-25 12:10:02

+0

@ Manoj: 文件“001356.doc”包含以下文本:“001354,001359,001245”。该文本恰好是文件名。例如:001354.doc,001359.doc,001245.doc 最终产品我需要的就是这样的事情 (001356.doc) -001354.doc -001359.doc -001245.doc @ Noctis:是 – user428370 2010-08-25 12:18:35

回答

3

编辑:我看到你是谁问了以前的问题!为什么打开一个新的?


有这个确切的问题最近的问题 - 你正在建模的结构是向图。使用Python的networkx包查看该问题的my answer。如果你打算对数据进行一些后处理,使用这个软件包是一个好主意。但是,对于简单情况,您可以创建自己的数据结构。这是一个使用图的邻接表表示的示例;使用邻接矩阵并不困难。

from collections import defaultdict 
adj_list = defaultdict(set) 

for filename in os.listdir(<dir>): 
    with open(filename) as theFile: 
     for line in theFile: 
      # parse line into filename, say 'target' 
      adj_list[ filename ].add(target) 

这会给你一个由该文件链接的文件名 - >文件的字典。

+0

你似乎是相当快速/频繁repiter katrielalex,谢谢你。是否有使用列表的特殊原因?现在我想起它可以用类似的方式编写类结构吗? – user428370 2010-08-25 12:40:58

+0

那么答案就不同了,你对这个问题的回答碰巧解决了一些问题。 – user428370 2010-08-25 12:43:42

+0

@ user428370:这里的整体结构是一个有向图。要存储该图表,您需要一个数据结构。 (就像例如一个向量是一个数学概念一样,但它存储在例如一个列表或一个元组中。)有几种常用于图的数据结构;两个最常见的是邻接列表和邻接矩阵(更多信息请参见维基百科)。在上面的例子中,我使用Python的Python集合实现了一个邻接列表结构。 – katrielalex 2010-08-25 13:02:06