2016-11-30 1 views
0

필자는 파일 크기를 모르거나 파일 크기가 크면 전체 텍스트 파일을 문자열로 읽는 것이 좋지 않은 것으로 간주한다는 점을 (최소한의 의미에서는) 이해합니다. 예를 들어 :파일이 너무 커서 Python에서 문자열로 읽을 수없는 경우는 언제입니까?

with open('letters.txt', 'r') as my_txt_file: 
    my_txt = my_txt_file.read() 

my_txt'letters.txt'의 모든 텍스트로 구성된 문자열을 만들 것입니다.

파일을 문자열로 읽으려면 너무 큰 것으로 간주하기위한 임계 값은 하드웨어 사양에 따라 다르다고 가정합니다. 하지만 일반적으로 한 파일을 한 행씩 읽어야 할 때 특정 파일 크기 제한이 있는지 궁금합니다.

답변

2

이론상의 제한은 2 ** 63here과 같이 색인에 의해 결정되는 파이썬 문자열의 최대 크기입니다.

실제 제한은 시스템의 메모리에 따라 다릅니다. 메모리에 문자열을 보유하면 시스템보다 많은 메모리가 필요하다면 MemoryError을 얻게 될 것입니다.

우수 사례의 측면에서 보면 다소 주관적입니다. 그러나, 일반적으로 작은 파일 (메모리 효율적인되는 것은 좋은 연습처럼 보인다)에 대해서도 좋은 연습이되도록 파일을 한 줄씩 읽는 것을 고려합니다. 물론 하나의 문자열로 전체 파일을 필요로하는 상황이있을 수 있지만, 이는 매우 드뭅니다.

+0

이론적 인 제한은 사용 가능한 가상 메모리에 따라 더 작습니다. 32 비트 파이썬에서는 기본적으로 약 2GB가됩니다. – Voo

관련 문제