2010-08-25 44 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