2011-07-29 13 views
19

Tôi cần tập lệnh của mình để tải xuống tệp mới, nếu tệp cũ đủ tuổi. Tôi đặt độ tuổi tối đa của tệp trong vài giây. Vì vậy, tôi sẽ trở lại đúng hướng với kịch bản của tôi bằng văn bản, tôi cần mã ví dụ, trong đó độ tuổi tệp được in ra trong vài giây.In tệp tuổi trong vài giây bằng cách sử dụng Python

+1

Chúng tôi sẽ được hạnh phúc để giúp bạn khắc phục một vấn đề trong mã hiện tại của bạn. Trong hầu hết các trường hợp, chúng tôi sẽ không viết mã cho bạn. –

+2

Vâng, tôi chắc chắn không thể đồng ý với bạn. Tôi nghĩ rằng việc đưa ra các ví dụ không phải là viết mã cho tôi. Và cũng có thể, nếu bạn nói rằng điều tôi đang yêu cầu là bạn viết mã cho tôi, thì có rất nhiều mã được viết cho những người khác. – Marko

Trả lời

26

Điều này cho thấy làm thế nào để tìm thấy (hoặc thư mục của) cuối thời gian chỉnh sửa một tập tin:

Dưới đây là số giây kể từ Epoch, sử dụng os.stat

import os 
st=os.stat('/tmp')  
mtime=st.st_mtime 
print(mtime) 
# 1325704746.52 

Hoặc, tương đương , sử dụng os.path.getmtime:

print(os.path.getmtime('/tmp')) 
# 1325704746.52 

Nếu bạn muốn có một đối tượng datetime.datetime:

import datetime   
print("mdatetime = {}".format(datetime.datetime.fromtimestamp(mtime))) 
# mdatetime = 2012-01-04 14:19:06.523398 

Hoặc một chuỗi formated sử dụng time.ctime

import stat 
print("last accessed => {}".format(time.ctime(st[stat.ST_ATIME]))) 
# last accessed => Wed Jan 4 14:09:55 2012 
print("last modified => {}".format(time.ctime(st[stat.ST_MTIME]))) 
# last modified => Wed Jan 4 14:19:06 2012 
print("last changed => {}".format(time.ctime(st[stat.ST_CTIME]))) 
# last changed => Wed Jan 4 14:19:06 2012 

Mặc dù tôi không hiển thị nó, có tương đương cho việc tìm kiếm thời gian truy cập và thay đổi thời gian cho tất cả những phương pháp này. Chỉ cần làm theo các liên kết và tìm kiếm "atime" hoặc "ctime".

+6

Đây là giải pháp của tôi: 'import os import time st = os.stat (Tên tệp) Tuổi = (time.time() - st.st_mtime) in Age' – Marko

12

Một cách tiếp cận (Tôi biết tôi không phải là câu trả lời đầu tiên nhưng ở đây đi anyway):

import time, os, stat 

def file_age_in_seconds(pathname): 
    return time.time() - os.stat(pathname)[stat.ST_MTIME] 
Các vấn đề liên quan