2012-10-16 81 views
5

如何在python编程语言中同时打开多个文件来运行我的程序?在Python中打开多个文件

我有大约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(打开(“Exemplo_1.txt”,“rU”))作为f1:'而不是 - with关键字清理正确一个例外。 – thegrinner

+5

任何机会,我们可以说服你删除分号;-) – mgilson

+3

使用十五个单独的名称为十五个打开的文件似乎不切实际..除非每个人被对待不同,他们将需要被放置在一个可迭代的东西无论如何避免大量代码重复。我认为把它们列入清单或字典可能是一个更好的主意。 – 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

你可以使用的glob组合和fileinput

import fileinput 
from glob import glob 

fnames = glob('Exemplo_*.txt') 
for line in fileinput.input(fnames): 
    pass # do whatever