거대한 파일이있어서 그것을 읽고 프로세스해야합니다.파이썬에서 스레딩을 활용하여 큰 파일을 파싱하는 방법은 무엇입니까?
with open(source_filename) as source, open(target_filename) as target:
for line in source:
target.write(do_something(line))
do_something_else()
스레드를 사용하여 가속화 할 수 있습니까? 한 줄에 하나의 쓰레드를 생성한다면 엄청난 오버 헤드 비용이 들까 요?
편집 :이 질문을 토론하지 않으려면 코드는 어떻게 생겼습니까?
with open(source_filename) as source, open(target_filename) as target:
?
는 @Nicoretti는 : 반복에서 나는 데이터의 몇 KB의 라인을 읽을 필요가있다.
업데이트 2 : 파이썬 풀고 기다려야 할 수 있도록이 파일이하는 BZ2 수 있습니다 :
$ bzip2 -d country.osm.bz2 | ./my_script.py
일부 처리를 수행하기 위해 얼마만큼의 데이터를 읽어야합니까? – Nicoretti