2013-01-27 6 views

답변

0

시험해보십시오. fileinput.

import fileinput 
for line in fileinput.input(someFileName, inplace=True): 
    doSomething() 

모든 라인이 소비를 통해 반복, 따라서 파일에서 삭제 :

이 같은 일이갑니다.
계속 하시려면 print으로 유지하면 동일한 위치에있는 파일로 다시 작성됩니다.
다시 줄을 인쇄하지 않으면 사라질 것입니다.

0

네이티브 파일이 그렇게 작동하지 않습니다. 반복 할 때마다 나머지 파일의 전체 목록을 다시 작성해야합니다. 성능이 좋지 않습니다 (파일 목록이 항상 매우 짧은 경우 제외). 그리고 당신이 장소에서 업데이 트를 할 수 없기 때문에 파일을 업데이 트하려는 동안 프로세스가 충돌하는 경우 실패 모드는 매우 나쁘다. 가장 좋은 방법은 임시 파일에 쓰고, 원래 파일을 삭제 한 다음 임시 파일의 이름을 바꾸거나 이동하는 것입니다.

대신 SQLite을 사용해야합니다. File 테이블에서 레코드를 삭제하거나 처리 된 파일을 추적하는 상태 필드를 가질 수 있습니다.

+0

@ user1628593,이 답변을 더 받아 들일 수있는 다른 방법이 있습니까? – jimhark

관련 문제