Ruby에서 대용량 파일을 읽고 다운로드하는 메모리 효율적인 방법

2457 단어 ruby

디스크에서 대용량 파일을 읽으려면



File.foreach 메서드는 파일을 한 줄씩 읽습니다. 그렇기 때문에 대용량 파일에 사용하는 것이 안전합니다.
파일의 각 줄을 실행하기 위해 블록을 수락할 수 있습니다.

예시:

File.foreach('example.jsonl') { |line| JSON.parse(line) }

그러나 Ruby 문서에서는 File 클래스에 정의된 이 메서드를 찾을 수 없습니다. IO 의 슈퍼클래스인 File 에 정의되어 있습니다.

인터넷에서 대용량 파일을 다운로드하려면



IO.copy_stream 을 사용하여 인터넷에서 대용량 파일을 다운로드할 수 있습니다. 쓰기 전에 전체 파일을 메모리에 로드하는 대신 스트림을 생성합니다.

예시:

IO.copy_stream(open('http://example.com/file.jsonl'), 'file.jsonl')

그것을 요 ​​약하기…

메모리 친화적인 방법:
File.foreach , IO.copy_stream

파일을 읽는 다른 방법:
File.read , File.readlines

좋은 웹페이지 즐겨찾기