2012-10-16 20 views
5

プログラムを実行するためにPythonプログラミング言語で同時に多くのファイルを開くことができますか?Pythonで複数のファイルを開く

私はちょうど今、私は以下のようにそれらの1 で働いている、約15のファイルを持っている:

f=open("Exemplo_1.txt","rU") 
+1

の組み合わせを使用することができますファイルを開くことができますか? –

答えて

3
f1=open("Exemplo_1.txt","rU"); 
f2=open("Exemplo_2.txt","rU"); 
... 
f15=open("Exemplo_15.txt","rU"); 

あなたは基本的にファイルへのアクセスを取得するにはFileオブジェクトを作成しています。

+0

並行して開く必要がない場合は、 'with(open(" Exemplo_1.txt "、" rU "))をf1:'として使用することをお勧めします。代わりにwithキーワードが正しく消去されます例外。 – thegrinner

+5

セミコロンを削除する可能性があります。 – mgilson

+3

15個のファイルを別々に15個の名前を付けて使用するのは実用的ではありません。それぞれが別々に扱われていなければ、何らかの反復可能性が必要ですコードの重複を避けるリストや辞表に入れておく方がいいでしょう。 – DSM

3

私はこのような何かをしたい:

try: 
    f = [open("Exemplo_%d.txt" % i, "rU") for i in range(1, 16)] 
    # do stuff 
finally: 
    for fh in f: 
     fh.close() 

try/finallyを参照してください。

+0

これは私にとって魅力のように働いた。私は構文を理解したいと思う。 %dと%i部分... –

+0

これは非常に便利だとわかりました。私は1000のファイルを開き、大きなデータセットのランダムなサンプルをそれぞれに書く必要がありました。大きなデータセットは大きすぎてメモリに収まらない。 – denson

1

あなたがワンショットで複数のファイルをループする必要がある場合は、FileInputクラスモジュールを使用し

for x in fileinput.input(['patterns.in', 'logfile.txt']): 
    print x 
5

あなたは開口部の複数に直面しているどのような問題globfileinput

import fileinput 
from glob import glob 

fnames = glob('Exemplo_*.txt') 
for line in fileinput.input(fnames): 
    pass # do whatever 
関連する問題