당신은 모든 라인을 읽기, 두 변수에 첫 번째 줄 (시퀀스)를 할당하는 것입니다. 첫 번째 행이 2 자로 구성된 경우에만 작동합니다. 대신 반복자의 파일을 사용
여기
newdata = {}
os.chdir("//GOLLUM//tbg2//tbg2//forritGB")
with open(filename) as f:
for line1 in f:
newdata[line1.strip()] = next(f, '').strip()
next()
는 파일에서 다음 행을 읽습니다. (각 행의 끝에 줄 바꿈 포함) 여분의 공백을 제거하기 위해,
from itertools import izip_longest
def pairwise(iterable):
return izip_longest(*([iter(iterable)] * 2), '')
newdata = {}
os.chdir("//GOLLUM//tbg2//tbg2//forritGB")
with open(filename) as f:
for line1, line2 in pairwise(f):
newdata[line1.strip()] = line2.strip()
참고 str.strip()
전화 :
대안은 한 쌍의 현명한 조리법을 사용하는 것입니다. 메모리에 전체 파일을 읽을 왜
? '.readlines()'는 여기 메모리 호그입니다. 그냥'f' * 직접 * 사용하고 버퍼를 사용하여 읽는 줄이 있습니다. –
그렇게 생각하지 않았습니다. 감사! – RussW