문자열을 찾기 위해 줄이 많은 파일을 반복하는 방법은 무엇입니까?

사이키 란

파이썬 :

수백만 개의 레코드에있는 큰 크기의 텍스트 파일에서 찾고있는 특정 단어가 있습니다.

그래서 실제로 파일에서 특정 문자열을 사용할 수 있는지 검색하고 싶었습니다.

내가 한 한 가지 방법은 다음과 같습니다.

with open('ip.log', 'r') as f:
     for line in f:
         if semething in line:
            break
     else: 
         print 'Not found'

그러나 작은 파일의 경우이 프로세스는 문제가 없지만 파일 크기가 증가하거나 레코드가 수천만 개로 증가 할 때 큰 파일을 메모리에로드하는 것은 실행 가능한 솔루션이 아닐 수 있습니다.

이 문제를 처리하는 더 좋은 방법이 있습니까?

관찰 :

  1. 파일이 1GB 이상이면 시스템 속도가 느려집니다.
  2. 하나의 텍스트를 찾으려면 매번 수백만 개의 레코드를 반복해야합니다.
알렉시스

여러분의 걱정은 근거가 없습니다. 여러분의 코드는 전체 파일을 메모리에로드하지 않습니다. 시도해보세요! 그리고 break루프에서 검색 한 단어를 찾으면 파일 읽기가 중지되므로 걱정할 필요가 없습니다.

코드에서는 -loop f와 함께 사용할 때 한 번에 한 줄을 읽는 파일 객체입니다 for. 당신이 쓴 경우 f.readlines()또는 f.read(), 다음 당신은 전체 파일을 읽는 것입니다.

유일한 잠재적 인 문제는 파일에 줄 바꿈이 포함되지 않는 경우입니다 (예 : 바이너리 파일이거나 줄 바꿈이 아닌 공백으로 구분 된 막대한 단어 목록). 이 경우, 다음과 같은 문자 블록을 읽어야합니다 f.read(10000)(그리고 블록에서 단어가 분리되는 것을 처리). 사용 사례에 일반 텍스트 파일이 포함되어 있으므로 걱정할 필요가 없습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

많은 테이블의 서식을 지정하기 위해 반복 횟수를 줄이는 방법은 무엇입니까?

분류에서Dev

데이터를 얻기 위해 파일을 반복하는 방법은 무엇입니까?

분류에서Dev

더 많은 입력을 얻기 위해 python "goto"를 이전 줄로 만드는 방법은 무엇입니까?

분류에서Dev

내 웹 사이트의 URL 만 찾기 위해 JSON 목록을 반복하는 방법은 무엇입니까?

분류에서Dev

일련의 새 .docx 파일을 만들기 위해 파일을 반복하는 방법은 무엇입니까?

분류에서Dev

여러 줄 문자열의 하위 문자열을 여러 번 반복하는 방법은 무엇입니까?

분류에서Dev

행 인덱스를 찾기 위해 파이썬에서 두 문자열의 조합을 일치시키는 방법은 무엇입니까?

분류에서Dev

파이썬에서 열의 최대 값을 얻기 위해 폴더의 파일을 반복하는 방법은 무엇입니까?

분류에서Dev

문자열이 포함 된 파일을 찾는 방법은 무엇입니까?

분류에서Dev

컨테이너를 정렬하기 위해 문자열을 입력하는 방법은 무엇입니까?

분류에서Dev

Hive 외부 테이블을 만들기 위해 csv 파일에서 따옴표가있는 새 줄 문자를 무시하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 특정 문자열 뒤에 쉼표로 숫자를 찾기 위해 정규식을 사용하는 방법은 무엇입니까?

분류에서Dev

파일 이름의 특정 문자를 기반으로 한 폴더에있는 많은 양의 .txt 파일을 Java의 여러 하위 폴더로 복사하고 이동하는 방법은 무엇입니까?

분류에서Dev

해당 값을 찾기 위해 dict의 키를 반복하는 방법은 무엇입니까?

분류에서Dev

많은 대용량 파일에서 중복 된 줄을 찾는 방법은 무엇입니까?

분류에서Dev

파일에서 문자열을 검색하고 찾은 줄과 다음 줄을 다른 파일에 복사하는 방법은 무엇입니까?

분류에서Dev

스크래피로 데이터를 얻기 위해 HTML을 반복하는 방법은 무엇입니까?

분류에서Dev

MongoDB / Mongoose 문서 배열에서 가장 많이 반복되는 값을 찾는 방법은 무엇입니까?

분류에서Dev

프로그래밍하는 동안 반복적 인 코드 편집을 줄이기 위해 Calc (또는 Excel)를 사용하는 방법은 무엇입니까?

분류에서Dev

더 많은 여유 공간을 위해 Amazon Linux OS를 줄이는 방법은 무엇입니까?

분류에서Dev

문자열에서 중복되는 반복 패턴을 줄이면서 후자의 위치에 유지하는 방법은 무엇입니까?

분류에서Dev

파일에 특정 문자열이있을 때 명령을 반복하는 방법은 무엇입니까?

분류에서Dev

기호로 시작하는 줄에 대해 더 많은 파일을 grep하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

쉘에서 많은 문자열을 얻기 위해 하나의 문자를 바꾸는 방법은 무엇입니까?

분류에서Dev

목록에서 가장 많이 발생하는 두 문자열을 찾는 방법은 무엇입니까?

분류에서Dev

파이썬에서 입력 == 텍스트 파일인지 확인하기 위해 반복 할 수있는 목록으로 여러 줄 텍스트 파일을 나누는 방법은 무엇입니까?

분류에서Dev

Intellij : 파일을 복제하기 위해 복사 / 붙여 넣기하는 방법은 무엇입니까?

분류에서Dev

두 파일을 한 줄씩 비교하여 얼마나 많은 파일이 위아래로 이동했는지 확인하는 방법은 무엇입니까?

분류에서Dev

Gnuplot에서 png 파일을 생성하기 위해 동일한 파일을 반복하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    많은 테이블의 서식을 지정하기 위해 반복 횟수를 줄이는 방법은 무엇입니까?

  2. 2

    데이터를 얻기 위해 파일을 반복하는 방법은 무엇입니까?

  3. 3

    더 많은 입력을 얻기 위해 python "goto"를 이전 줄로 만드는 방법은 무엇입니까?

  4. 4

    내 웹 사이트의 URL 만 찾기 위해 JSON 목록을 반복하는 방법은 무엇입니까?

  5. 5

    일련의 새 .docx 파일을 만들기 위해 파일을 반복하는 방법은 무엇입니까?

  6. 6

    여러 줄 문자열의 하위 문자열을 여러 번 반복하는 방법은 무엇입니까?

  7. 7

    행 인덱스를 찾기 위해 파이썬에서 두 문자열의 조합을 일치시키는 방법은 무엇입니까?

  8. 8

    파이썬에서 열의 최대 값을 얻기 위해 폴더의 파일을 반복하는 방법은 무엇입니까?

  9. 9

    문자열이 포함 된 파일을 찾는 방법은 무엇입니까?

  10. 10

    컨테이너를 정렬하기 위해 문자열을 입력하는 방법은 무엇입니까?

  11. 11

    Hive 외부 테이블을 만들기 위해 csv 파일에서 따옴표가있는 새 줄 문자를 무시하는 방법은 무엇입니까?

  12. 12

    파이썬에서 특정 문자열 뒤에 쉼표로 숫자를 찾기 위해 정규식을 사용하는 방법은 무엇입니까?

  13. 13

    파일 이름의 특정 문자를 기반으로 한 폴더에있는 많은 양의 .txt 파일을 Java의 여러 하위 폴더로 복사하고 이동하는 방법은 무엇입니까?

  14. 14

    해당 값을 찾기 위해 dict의 키를 반복하는 방법은 무엇입니까?

  15. 15

    많은 대용량 파일에서 중복 된 줄을 찾는 방법은 무엇입니까?

  16. 16

    파일에서 문자열을 검색하고 찾은 줄과 다음 줄을 다른 파일에 복사하는 방법은 무엇입니까?

  17. 17

    스크래피로 데이터를 얻기 위해 HTML을 반복하는 방법은 무엇입니까?

  18. 18

    MongoDB / Mongoose 문서 배열에서 가장 많이 반복되는 값을 찾는 방법은 무엇입니까?

  19. 19

    프로그래밍하는 동안 반복적 인 코드 편집을 줄이기 위해 Calc (또는 Excel)를 사용하는 방법은 무엇입니까?

  20. 20

    더 많은 여유 공간을 위해 Amazon Linux OS를 줄이는 방법은 무엇입니까?

  21. 21

    문자열에서 중복되는 반복 패턴을 줄이면서 후자의 위치에 유지하는 방법은 무엇입니까?

  22. 22

    파일에 특정 문자열이있을 때 명령을 반복하는 방법은 무엇입니까?

  23. 23

    기호로 시작하는 줄에 대해 더 많은 파일을 grep하는 가장 좋은 방법은 무엇입니까?

  24. 24

    쉘에서 많은 문자열을 얻기 위해 하나의 문자를 바꾸는 방법은 무엇입니까?

  25. 25

    목록에서 가장 많이 발생하는 두 문자열을 찾는 방법은 무엇입니까?

  26. 26

    파이썬에서 입력 == 텍스트 파일인지 확인하기 위해 반복 할 수있는 목록으로 여러 줄 텍스트 파일을 나누는 방법은 무엇입니까?

  27. 27

    Intellij : 파일을 복제하기 위해 복사 / 붙여 넣기하는 방법은 무엇입니까?

  28. 28

    두 파일을 한 줄씩 비교하여 얼마나 많은 파일이 위아래로 이동했는지 확인하는 방법은 무엇입니까?

  29. 29

    Gnuplot에서 png 파일을 생성하기 위해 동일한 파일을 반복하는 방법은 무엇입니까?

뜨겁다태그

보관