Python 을 이용 하여 파일 을 읽 는 네 가지 다른 방법 비교

1778 단어 python읽 기문건
머리말
파 이 썬 이 파일 을 읽 는 방식 은 다양 하 다 는 것 을 잘 알 고 있 지만 큰 파일 을 읽 어야 할 때 읽 는 방식 에 따라 다른 효과 가 있 습 니 다.다음은 상세 한 소 개 를 살 펴 보 겠 습 니 다.
장면
2.9G 의 큰 파일 을 한 줄 씩 읽 습 니 다.
  • CPU i7 6820HQ
  • RAM 32G
  • 방법.
    줄 마다 읽 기 분할 문자열 작업
    다음 방법 은 모두 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 증가 하여 속도 가 이상 에서 가장 느리다.
    총결산
    이상 의 방법 은 참고 로 공 인 된 큰 파일 읽 기 방법 이 세 가지 가 가장 좋다.그러나 구체 적 인 상황 은 기계 의 성능,처리 데이터 의 복잡 도 에 따라 야 한다.
    자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기