Python 을 이용 하여 파일 을 읽 는 네 가지 다른 방법 비교
파 이 썬 이 파일 을 읽 는 방식 은 다양 하 다 는 것 을 잘 알 고 있 지만 큰 파일 을 읽 어야 할 때 읽 는 방식 에 따라 다른 효과 가 있 습 니 다.다음은 상세 한 소 개 를 살 펴 보 겠 습 니 다.
장면
2.9G 의 큰 파일 을 한 줄 씩 읽 습 니 다.
줄 마다 읽 기 분할 문자열 작업
다음 방법 은 모두 with...as 방법 으로 파일 을 엽 니 다.
with 문 구 는 자원 에 접근 하 는 장소 에 적용 되 며 사용 과정 에서 이상 이 발생 하 든 안 발생 하 든 필요 한'청소'작업 을 수행 하고 자원 을 방출 합 니 다.예 를 들 어 파일 사용 후 자동 으로 닫 히 고 스 레 드 에 잠 겨 있 는 자동 가 져 오기 와 방출 등 입 니 다.
방법
with open(file, 'r') as fh:
for line in fh.readlines():
line.split("|")
운행 결과:15.4346568584 초 소모시스템 모니터 에 메모리 가 4.8G 에서 8.4G 로 급 격 히 치 솟 았 고 fh.readlines()는 읽 은 모든 줄 의 데 이 터 를 메모리 에 저장 합 니 다.이 방법 은 작은 파일 에 적합 합 니 다.
방법 2
with open(file, 'r') as fh:
line = fh.readline()
while line:
line.split("|")
실행 결과:22.3531990051 초 소모메모리 에는 거의 변화 가 없습니다.메모리 에 한 줄 의 데이터 만 액세스 하기 때 문 입 니 다.그러나 시간 이 지난번 보다 현저히 길 어서 데 이 터 를 더 처리 하 는 데 효율 이 높 지 않 습 니 다.
방법
with open(file) as fh:
for line in fh:
line.split("|")
운행 결과:13.99569752 초 소모메모리 에 변화 가 거의 없고 속도 도 방법 보다 빠르다.
for line in fh 는 파일 대상 fh 를 교체 가능 한 것 으로 보고 버퍼 의 IO 와 메모리 관 리 를 자동 으로 사용 하기 때문에 큰 파일 을 걱정 할 필요 가 없습니다.이것 은 매우 pythonic 방식 입 니 다!
방법 4 fileinput 모듈
for line in fileinput.input(file):
line.split("|")
실행 결과:26.110311013 초 소모메모리 가 200-300 MB 증가 하여 속도 가 이상 에서 가장 느리다.
총결산
이상 의 방법 은 참고 로 공 인 된 큰 파일 읽 기 방법 이 세 가지 가 가장 좋다.그러나 구체 적 인 상황 은 기계 의 성능,처리 데이터 의 복잡 도 에 따라 야 한다.
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.