나는 거대한 숫자의 파일을 바이너리 형식으로 가지고 있으며, 배열의 일부분 만 파싱해야한다. 내가 numpy.fromfile
과 open
을 들여다 보았지만 파일에서 위치 A에서 위치 B까지 읽을 수있는 옵션이 없습니다. 이 작업을 수행 할 수 있습니까?파이썬 프로그램이 어떻게 파일의 특정 라인을로드하고 읽을 수 있습니까?
답변
"거대한 파일"을 다루는 경우라면 이 아닌은 실제로 데이터가 필요한 시점까지 모든 것을 무시합니다.
대신 파이썬의 파일 객체에는 이전에 모든 것을 우회하여 데이터를 효율적으로 파싱해야하는 위치에서 바로 이동할 수있는 .seek()
메서드가 있습니다.
with open('huge_file.dat', 'rb') as f:
f.seek(1024 * 1024 * 1024) # skip 1GB
...
은 참조 : 당신은 당신이 관심있는 데이터의 정확한 위치에 대해 알고 있다면, 당신은 단지 documented의 파일 개체의 seek(<n bytes>)
방법을 사용할 수 있습니다 http://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects
그리고 *를 (를) 건너 뛸 곳을 어떻게 알 수 있습니까? 길이가 불규칙한 파일이 있으면 건너 뛸 내용을 알 수 없습니다. –
그래, 그럴 수도 있겠지만 그는 아무 것도 지정하지 않았다. –
내가 의견에 대한 의견을 계속 남기고 투표하는 대신에 투표했습니다. 질문은 대답하기에는 너무 모호합니다. –
. 당신이 읽기를 시작하기 전에 한번만 주어진 오프셋 (offset)으로 호출하십시오.
- 1. C에서 파일의 특정 부분을 어떻게 읽을 수 있습니까?
- 2. 어떻게 파이썬 인터프리터가 charaset을 읽을 수 있습니까?
- 3. 어떻게 파일을 특정 문자로만 읽을 수 있습니까?
- 4. application_name은 어떻게 읽을 수 있습니까?
- 5. 인스트루먼트는 어떻게 읽을 수 있습니까?
- 6. 파이썬 프로그램에 stdin에서 읽을 내용이 있는지 어떻게 알 수 있습니까?
- 7. c에서 exe 파일의 텍스트를 읽을 수 있습니까?
- 8. 어떻게 파이썬 프로그램이 파일에서 라인을 읽게 할 수 있습니까?
- 9. 쉘 스크립트는 파일의 범위를 읽을 수 있습니까?
- 10. vmlinux 파일의 기호 테이블을 읽을 수 있습니까?
- 11. Grails는 파일의 원격 디렉토리에서 읽을 수 있습니까?
- 12. 어떻게 파일의 권한을 변경/파이썬
- 13. 어떻게 파일의 마지막 줄을 읽을 수 있습니다
- 14. 프로그램이 자체 엘프 섹션을 읽을 수 있습니까?
- 15. Java에서 파일의 입력을 한 줄씩 어떻게 읽을 수 있습니까?
- 16. 어떻게이 문자열을 읽을 수 있습니까? 파이썬
- 17. matlab에, 어떻게 파이썬 피클 파일을 읽을 수 있습니까? 파이썬에서
- 18. 어떻게 데이터를 읽을 수 있습니까?
- 19. 어떻게 Javadocs를 읽을 수 있습니까?
- 20. 텍스트 파일의 일부만 읽을 수 있습니까?
- 21. Ruby에서 파일의 수정 날짜를 읽을 수 있습니까?
- 22. plist 파일의 구조를 읽을 수 있습니까?
- 23. C# 비디오 파일의 속성을 읽을 수 있습니까?
- 24. XIB 파일의 XML 데이터를 읽을 수 있습니까?
- 25. 텍스트 파일의 특정 줄을 파이썬 목록에 넣을 수 있습니까?
- 26. 어떻게 파일에서 첫 줄을 읽을 수 있습니까?
- 27. 파이썬 스크립트에서`export` 변수를 읽을 수 있습니까?
- 28. 파이썬 프로그램이 출력하는 모든 텍스트를 어떻게 인코딩 할 수 있습니까?
- 29. 안드로이드 어떻게 특정 폴더에서 파일 이름을 읽을 수 있습니까?
- 30. (어떻게) 특정 클라이언트에게 메시지를 보낼 수 있습니까?
물론 할 수 있습니다. 위치 A에 도달 할 때까지 행을 읽고 무시한 다음 위치 B까지 행을 읽고 구문 분석하십시오. –
파일은 스트림입니다. 그걸로 데이터 스트림을 보내지 않으면 무슨 일이 일어나든지 상관하지 마라. –
"숫자의 거대한 파일"이 있으면 비효율적 인 것처럼 보입니다 ... –