2

ディレクトリを調べて特定の種類のファイルを探し、それらをリストに追加する方法を見つけました。これで、ファイルの名前のリストができました。それらすべてを開くにはどうすればよいですか?これが私がこれまでに持っているものです:

import os
import glob
import subprocess

os.chdir("/Users/blah/Desktop/Data")
reflist = glob.glob('*raw_ref.SDAT')
actlist = glob.glob('*raw_act.SDAT')

for i in reflist:
    os.popen("%r" %i)

for j in actlist:
    os.popen("%r" %j)

PS私はMacを使用しています

4

3 に答える 3

4

同時に開くファイルはできるだけ少なくすることをお勧めします。

for file in reflist:
    with open(file) as f:
        pass # do stuff with f
    # when with block ends, f is closed

for file in actlist:
    with open(file) as f:
        pass # do stuff with f
    # when with block ends, f is closed

なんらかの理由で、すべてのファイルを同時に開く必要がある場合 (これはありそうもないことです)、NPE のソリューションを使用してください。

ファイル I/O にコンテキスト マネージャ (withここで使用されているようなもの) を使用しない場合は、終了時にファイルを手動で閉じる必要があることに注意してください。

于 2013-08-29T18:32:20.347 に答える
4
ref_files = map(open, reflist)

または、引数をより細かく制御したい場合は、次のようにしますopen()

ref_files = [open(filename, ...) for filename in reflist]
于 2013-08-29T18:26:58.827 に答える