2013-03-08 1 views
0

나중에 FTPd 할 특정 파일 이름이 필요한 큰 텍스트 파일을 생성하는 python 스크립트가 있습니다. 파일을 작성한 후 전송 된 날짜를 반영하도록 날짜를 수정하는 동안 파일을 새 위치로 복사합니다. 유일한 문제는 복사 된 파일에 원본의 마지막 줄 중 몇 개가 누락되어 있다는 것입니다.파이썬 shutil 복사 기능이 마지막 몇 줄 누락되었습니다.

from shutil import copy 

// file 1 creation 

copy("file1.txt", "backup_folder/file1_date.txt") 

무엇이 원인 일 수 있습니까? 원본 파일의 사본 작성이 완료되지 않아서 사본을 얻지 못했습니까?

답변

3

file1.txt이 무엇이든간에 은 파일 핸들을 닫은이어야합니다.

파일 쓰기가 버퍼링되며 파일을 닫지 않으면 버퍼가 플러시되지 않습니다. 파일 끝에있는 누락 된 데이터는 여전히 해당 버퍼에 있습니다.

은 바람직하게는 파일이 컨텍스트 관리자로 파일 개체를 사용하여 닫혀 있는지 확인하십시오

with open('file1.txt', 'w') as openfile: 
    # write to openfile 

# openfile is automatically closed once you step outside the `with` block. 
+0

나는 그것이 내가 없어진 것을 간단한 것이었다 새. 복사본 바로 앞에 닫기 파일을 추가하고 수정했습니다. –

관련 문제