2016-11-21 70 views
-1

我需要使用區間0-400按名稱讀取目錄中的文件。 這意味着PROGRAMM讀取與名稱的文件從0到400如何按名稱讀取目錄中的文件?

現在我有這樣的代碼:

with open(file) as xml: 
     doc = xmltodict.parse(xml.read()) 

所以,我想:

for num in range(0,400) 
    filename = num".vtb" 
    doc = xmltodict.parse(filename.read()) 

問題是,我使用:

if __name__ == '__main__': 
    files = glob.glob("data*") 
    pool = Pool() 
    pool.map(open_xml, files) 
    c.close() 

我把數組files改爲map功能。我怎樣才能通過0-400陣列文件呢?

+0

什麼是現在發生的事情是不符合您的期望。解釋你現在遇到的問題。如果您收到任何錯誤,請顯示Traceback。 – idjaw

+0

首先,它應該是'範圍內的數字(0,400):filename = num +「.vtb」。其次,你可能想要解釋你堅持什麼,或者人們不知道該怎麼回答。 – Musen

+0

因此,在我將此結果傳遞給'map':'pool.map(open_xml,files)'後,我沒有讀取文件:'files = glob.glob(「data/*」)'。所以,我需要從0到400的文件,並將這些傳遞給'map' – Goga

回答

1

不確定你在問什麼。但是你試圖編寫的代碼不起作用,我想你想知道如何使它工作。所以,你寫道:

for num in range(0,400) 
    filename = num".vtb" 
    doc = xmltodict.parse(filename.read()) 

相反,嘗試:

for num in range(0,400) 
    filename = str(num) + ".vtb" 
    doc = xmltodict.parse(filename.read()) 

如果你想要的東西,那麼你的問題不在於此,這並不這樣做。

編輯

閱讀您的意見,我的理解是,你要這些0400文件傳遞給map。然後你只需要建立一個包含所有路徑上使用的清單:

filenames = [] 
for num in range(0,400) 
    filenames.append(str(num) + ".vtb") 

然後:

pool.map(open_xml, filenames) 
+0

查看已更新的問題 – Goga

+0

@Goga更新了答案。 –

+0

那麼,循環應該在外面? – Goga