2014-11-26 5 views
0

파이썬에서 여러 파일을 열어 값으로 사전에 할당하려고합니다. open() 기능으로 각각을 열 수 있지만 1000 개 파일이 있다면 어떻게 될까요?! 이 파일은 무언가 같지만이 파일을 열고 문서 사전에 지정하는 루프가 필요합니다! 나는 누군가가 저를 도울 수 있는지 생각해 본다.여러 파일을 열고 사전에 할당하십시오.

f1 = open('doc1.txt', 'r').read() 
f2 = open('doc2.txt', 'r').read() 
f3 = open('doc3.txt', 'r').read() 
f4 = open('doc4.txt', 'r').read() 
f5 = open('doc5.txt', 'r').read() 
f6 = open('doc6.txt', 'r').read() 
f7 = open('doc7.txt', 'r').read() 
f8 = open('doc8.txt', 'r').read() 
f9 = open('doc9.txt', 'r').read() 
f10 = open('doc10.txt', 'r').read() 

documents = {'doc1':f1, 'doc2':f2, 'doc3':f3, 'doc4':f4, 'doc5':f5, 'doc6':f6, 'doc7':f7, 'doc8':f8, 'doc9':f9, 'doc10':f10} 

답변

2

당신은에 대한 루프과 같이 사용할 수 있습니다 : 파일이 큰 경우 documents 사전 메모리를 많이 소비하는 것이라고하지만

documents = {} 
for i in range(1, 11): 
    i = str(i) 
    with open('doc' + i + '.txt') as f: # This closes the files when done. 
     documents['doc' + i] = f.read() 

염두에 두십시오. 한번에 한 번에 하나씩 열어서 읽는 것이 가장 좋을 것입니다.

관련 문제