2014-12-20 116 views
15

我用下面的代碼來獲取,如果它存在文件的修改日期:獲取文件的修改日期在Python

if os.path.isfile(file_name): 
    last_modified_date = datetime.fromtimestamp(os.path.getmtime(file_name)) 
else: 
    last_modified_date = datetime.fromtimestamp(0) 

是否有一個更優雅的/短的路?

+2

我相信這會回答你的問題。 http://stackoverflow.com/questions/237079/how-to-get-file-creation-modification-date-times-in-python –

回答

28

您可以使用異常處理;不需要先測試文件是否存在,只要不是這種情況即可:

try: 
    mtime = os.path.getmtime(file_name) 
except OSError: 
    mtime = 0 
last_modified_date = datetime.fromtimestamp(mtime) 

這是要求原諒而不是允許。

+0

我更喜歡這個選項,因爲它更短,更具可讀性。不幸的是,@thefourtheye提出的一個內襯不會適合120行的限制而不會失去可讀性。當然這只是我個人的意見。 – Zzokk

+0

我實際上更喜歡問題中給出的解決方案......因爲您的解決方案意味着:理解可能存在0時間戳,並且此事具有特殊含義。 – GhostCat

+0

@GhostCat:結果完全一樣。如果你想要,你可以直接將'datetime.fromtimestamp'移動到'try'和'except'套件中,但這只是更多的輸入。 –

相關問題