2016-11-21 13 views
-1

ディレクトリ0-400を使って名前でディレクトリ内のファイルを読み取る必要があります。 これは、プログラムの開発は、今私は、このコード持っている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() 

私は配列を渡すfilesmap機能。代わりに0-400配列ファイルを渡すことはできますか?

+0

それはあなたの期待を満たしていません。あなたが現在持っている問題を説明してください。エラーが発生した場合は、トレースバックを表示します。 – idjaw

+0

まず、 'num for range(0,400):filename = num +" .vtb "にする必要があります。第二に、あなたは何を抱きしめているのか、人は何を答えなければならないのかを説明したいかもしれません。 – Musen

+0

私はこの結果を 'map'に渡した後、' files = glob.glob( "data/*") 'というファイルを読みません:' pool.map(open_xml、files) '。だから、私は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()) 

を、これはあなたがやりたいしない場合は、あなたの問題は別の場所に位置しています。

EDIT

あなたのコメントを読んで、私が理解あなたがmapにこれら0400にファイルを渡したいということです。次に、あなただけのすべてのパスが使用することを含むリストを作成する必要があります。そして、

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

:今何が起こっている

pool.map(open_xml, filenames) 
+0

更新された質問を見る – Goga

+0

@Goga最新の回答を更新しました。 –

+0

ループは外側にあるはずですか? – Goga

関連する問題