2012-10-16 4 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"); 

당신은 기본적으로 파일에 액세스하려면 파일 객체를 생성하고 있습니다.

+0

병렬로 열 필요가없는 경우 대신'with (open ("Exemplo_1.txt", "rU"))를 f1 :'으로 사용하는 것이 좋습니다 - with 키워드는 다음과 같은 경우에 올바르게 정리됩니다. 예외. – thegrinner

+5

우리가 세미콜론을 제거 할 수있는 가능성이 있습니다 ;-) – mgilson

+3

열려있는 15 개의 파일에 대해 15 개의 개별 이름을 사용하는 것은 비현실적 인 것처럼 보입니다. 각 하나가 다르게 취급되지 않는 한, 어쨌든 iterable에 넣어야 할 것입니다. 많은 코드 중복을 피하십시오. 아마 목록이나 딕트에 넣는 것이 더 좋은 생각이라고 생각합니다. – 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

, 당신은 glob의 조합을 사용할 수

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

fileinput 함수 모듈을 사용하여 여러를 열기로 직면하고 어떤 문제 fileinput

import fileinput 
from glob import glob 

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