2013-03-12 15 views
0

CSV 파일 처리 진행 상황을 보여 드리고자합니다. 검색해 본 결과는 다음과 같습니다. Tracking file load progress in Python 하지만이 방법을 사용하면 읽어야하는 바이트를 처리해야하므로 내 인생이 조금 더 어려워 질 것입니다. 또 다른 방법은 줄을 계산하는 것이지만 처리를 시작하기 전에 줄 수를 읽지는 않을 것입니다.파이썬에서 csv로드 추적

제 생각은 파일 크기 (OS)를 얻는 것입니다. 그리고 파일을 처리 할 때 처리 된 바이트를 얻습니다 (가장 빠른 방법이어야 함).

다른 해결책으로 진행 상황을 표시 하시겠습니까?

답변

0

내가 file.tell()을 발견하지만 난 그것을 사용하지 않은 것으로 보인다. 파일의 위치를 ​​제공해야합니다.

+0

이것이 작동합니다! 나는 그것을 보지 못했다. –

0

볼 파크링 할 수 있습니다. 맞습니까? csv는 텍스트 파일 일 뿐이므로 os 모듈에서 파일 크기를 가져올 수 있습니다. 그런 다음 첫 번째 줄부터 읽어 와서 각 줄의 크기를 계산하고 파일의 전체 줄을 계산할 수 있습니다. 귀하의 링크를 클릭


는하지만,이 정확히 같은 제안 :

+0

좋아, 그건 내 생각이다. 그러나 각 반복을 읽는 바이트 수는 어떻게 얻습니까? FileObjects에는 'bytesRead'와 같은 속성이 없습니다. 그리고 줄 단위로 반복하고 바이트 덩어리로 읽지 않습니다. –

+0

당신은 당신이 얻는 데이터에 대해 ** len ** 연산자를 사용합니다. – joojaa

+0

아, 알았어요. 그런 다음 한 줄에 문자 수를 세어 바이트 수를 알려줍니다. 이것은 줄 당 바이트 수를 제공합니다. 파일의 총 크기 (바이트)를이 수로 나눈 값은 파일의 총 줄 수를 나타냅니다. 또한 이동 평균을 유지 (즉, 행을 읽을 때마다 바이트/선 계산을 업데이트)하여 더 많은 데이터를 읽을 때 예상치가 더 정확해질 수 있습니다. – BenDundee