2012-07-05 3 views
33

ftplib을 사용하여 FTP를 통해 파일을 다운로드하는 Python 스크립트가 있습니다.파이썬에서 파일의 마지막 수정 시간을 어떻게 설정할 수 있습니까?

내 현재의 다운로드 코드는 단지 FTP LIB 문서의 예를 다음과 같습니다

ftp.retrbinary('RETR README', open('README', 'wb').write) 

지금은 FTP를 통해 다운로드 한 파일에있는 파일과 같은 마지막으로 수정 한 시간을해야하는 요구 사항이 FTP 서버 자체. ftp.retrlines('list')에서 시간을 분석 할 수 있다고 가정하면 다운로드 한 파일에서 수정 된 시간을 어떻게 설정할 수 있습니까?

저는 유닉스 기반 OS를 사용하고 있습니다.

답변

43

파이썬에서 직접이 작업을 수행하려는 경우 os.utime을 찾고 있습니다. docs을 통해 더 많은 정보를 얻을 수 있습니다.

+0

, 감사 – jdeuce

4

두 가지 방법이 있습니다. 하나는 위의 os.utime 예제이고 참조 통계가없는 파일에 타임 스탬프를 설정하는 경우 이 필요합니다. 그러나 "shutil.copy()"를 사용하여 파일을 복사하는 경우 참조 파일이 있습니다. 그런 다음 사용 권한 비트, 마지막 액세스 시간, 마지막 수정 시간 및 플래그도 복사하려면 "shutil.copy()"바로 뒤에 "shutil.copystat()"을 사용할 수 있습니다.

"shutil.copy()"에 플래그를 추가하지 않은 이유는 무엇입니까? 하나의 명령으로이 작업을 수행합니다. 여러 저자가 을 구현 한 것처럼 보입니다. 하나는 복사본을 구현했으며 하나는 이전의 누락 된 기능을 채우기 위해 copystat을 구현했습니다.

그리고 한 번에 두 가지를 모두 수행하기위한 것입니다 "shutil.copy2는"이 ... os.utime

19

사용 : 내가 찾던 무엇

import os 

os.utime(path_to_file, (access_time, modification_time)) 
+0

더 정교한 예 : https://www.tutorialsp.com/.com/python/os_utime.htm – kashiraja