2011-09-15 23 views
12

Tôi muốn kiểm tra xem tệp có lớn hơn một khoảng thời gian nhất định (ví dụ: 2 ngày) không.So sánh ngày để kiểm tra các tệp cũ

tôi quản lý để có được thời gian tạo tập tin theo cách như vậy:

>>> import os.path, time 
>>> fileCreation = os.path.getctime(file) 
>>> file 
1314015638 
>>> time.ctime(os.path.getctime(file)) 
'Mon Aug 22 14:20:38 2011' 

Làm thế nào tôi có thể bây giờ kiểm tra nếu điều này là cũ hơn 2 ngày?

Tôi làm việc dưới Linux, nhưng giải pháp nền tảng chéo sẽ tốt hơn. Chúc mừng!

Trả lời

16
now = time.time() 
twodays_ago = now - 60*60*24*2 # Number of seconds in two days 
if fileCreation < twodays_ago: 
    print "File is more than two days old" 
+1

+1 i biết đó là khá dễ dàng ... nhưng tôi là một chút blocket bởi kiểu dữ liệu ... thanks a lot! :) – Stefano

+0

Tôi tin rằng nó sẽ được sạch hơn để sử dụng timedelta (ref .: câu trả lời của Eduardo). – Alvaro

18

Tôi biết, đó là một câu hỏi cũ. Nhưng tôi đang tìm kiếm một cái gì đó tương tự và đã đưa ra giải pháp thay thế này:

from os import path 
from datetime import datetime, timedelta 

two_days_ago = datetime.now() - timedelta(days=2) 
filetime = datetime.fromtimestamp(path.getctime(file)) 

if filetime < two_days_ago: 
    print "File is more than two days old" 
+1

Bạn có thể bỏ qua chuyển đổi đến và từ biểu diễn chuỗi: filetime = datetime.fromtimestamp (path.getctime (file)) –

+0

@ErikForsberg, đẹp hơn! Đã cập nhật nó. Cảm ơn! – Eduardo

+0

đẹp và sạch sẽ! – codeScriber