Trong bài viết này, chúng ta sẽ thảo luận về các cách khác nhau để lấy ngày và giờ sửa đổi lần cuối của tệp cũng như cách chuyển đổi chúng sang các định dạng khác nhau
Nhận thời gian sửa đổi cuối cùng của tệp bằng os. thống kê[]
os.stat[pathOfFile]
Nó trả về trạng thái của tệp ở dạng os. đối tượng stat_result. Nó chứa thông tin liên quan đến một tệp như chế độ, loại liên kết, quyền truy cập, thời gian tạo hoặc sửa đổi, v.v.
Để nhận thời gian sửa đổi lần cuối từ hệ điều hành. đối tượng stat_result truy cập vào thuộc tính ST_MTIME, chứa thời gian
sửa đổi tệp gần đây nhất tính bằng giây. Sau đó, chúng tôi có thể chuyển đổi nó sang định dạng có thể đọc được bằng cách sử dụng thời gian. ctime[] tôi. e.
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]
Đầu ra.
______2
Nhận thời gian sửa đổi cuối cùng của tệp bằng os. đường dẫn. getmtime[]
hệ điều hành của Python. mô-đun đường dẫn cung cấp một API khác để tìm nạp thời gian sửa đổi cuối cùng của tệp i. e
os.path.getmtime[path]
Ở đây, đường dẫn đại diện cho đường dẫn của tệp và nó trả về thời gian sửa đổi cuối cùng của tệp theo số giây kể từ kỷ nguyên. Sau đó, chúng tôi có thể chuyển đổi thời gian kể từ kỷ nguyên sang định dạng dấu thời gian có thể đọc được khác nhau. Hãy xem một ví dụ,
Nhận thời gian sửa đổi lần cuối bằng os. đường dẫn. getmtime[] & thời gian. giờ địa phương[]
# Get file's Last modification time stamp only in terms of seconds since epoch modTimesinceEpoc = os.path.getmtime[filePath] # Convert seconds since epoch to readable timestamp modificationTime = time.strftime['%Y-%m-%d %H:%M:%S', time.localtime[modTimesinceEpoc]] print["Last Modified Time : ", modificationTime ]
Đầu ra.
______5
thời gian. localtime[] chuyển đổi giây kể từ epoch thành struct_time theo múi giờ địa phương. Sau đó, bằng cách chuyển cấu trúc thời gian đó sang thời gian. strftime[] chúng ta có thể lấy dấu thời gian ở định dạng có thể đọc được.
Bằng cách thay đổi chuỗi định dạng kịp thời. strftime[] chúng tôi chỉ có thể lấy ngày và cả ở định dạng khác dành riêng cho ứng dụng của chúng tôi. e
# Convert seconds since epoch to Date only modificationTime = time.strftime['%d/%m/%Y', time.localtime[os.path.getmtime[filePath]]] print["Last Modified Time : ", modificationTime ]
Đầu ra.
______7
Nhận thời gian sửa đổi lần cuối bằng cách sử dụng os. đường dẫn. getmtime[] thành datetime. fromtimestamp[]
thay vì thời gian. localtime[] chúng ta cũng có thể sử dụng hàm datetime khác. fromtimestamp[] để chuyển đổi số giây kể từ kỷ nguyên thành đối tượng thời gian. Sau đó, chúng ta có thể gọi thời gian. strftime[] để chuyển đổi sang định dạng có thể đọc được. Ví dụ,
modTimesinceEpoc = os.path.getmtime[filePath] modificationTime = datetime.datetime.fromtimestamp[modTimesinceEpoc].strftime['%Y-%m-%d %H:%M:%S'] print["Last Modified Time : ", modificationTime ]
Đầu ra.
______5
Lấy thời gian sửa đổi cuối cùng của tệp trong Múi giờ UTC
Để có được thời gian sửa đổi cuối cùng trong múi giờ UTC, hãy sử dụng datetime. utcfromtimestamp[] tôi. e
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]0
Đầu ra.
______11
Ví dụ hoàn chỉnh như sau,
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]2
Đầu ra.
______13
Quảng cáo
Cảm ơn bạn đã đọc.
Ví dụ: giả sử rằng một tệp văn bản có tên 'New_Products' được lưu trữ theo đường dẫn sau
C. \Users\Ron\Desktop\Test
Trường hợp thời gian sửa đổi của tệp là. 2020-12-23 6. 34 giờ chiều
New_Products 23-12-2020 6. 34 giờ chiều
Tiếp theo, bạn sẽ thấy cách truy xuất thời gian đó bằng Python
Bước 2. Nhận thời gian sửa đổi của tệp bằng Python
Bạn có thể sử dụng mẫu sau để lấy thời gian sửa đổi của tệp bằng Python
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]4
ví dụ của chúng tôi
- Đường dẫn nơi tệp được lưu trữ là. C. \Users\Ron\Desktop\Test
- tên tập tin là. Sản phẩm mới
- Phần mở rộng tập tin là. txt
Đặt mọi thứ lại với nhau [đừng quên đặt ký tự 'r' trước tên đường dẫn của bạn]
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]5
Ở đây, thời gian được biểu thị bằng giây kể từ kỷ nguyên
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]6
Lưu ý rằng cú pháp print[type[modified_time]] đã được thêm vào cuối mã để kiểm tra loại đối tượng. Trong trường hợp này, loại đối tượng là float
Để chuyển đổi thời gian ở trên thành một chuỗi đại diện cho giờ địa phương
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]7
Bây giờ bạn sẽ nhận được chuỗi theo cách sau
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]8
Bước 3 [tùy chọn]. Định dạng thời gian sửa đổi
Để định dạng mod_time, chẳng hạn như ddmmyyyy, bạn cần phải
- Đầu tiên, chuyển đổi sang giờ địa phương bằng time. giờ địa phương [hoặc UTC sử dụng thời gian. gmtime]
- Sau đó, định dạng thời gian sử dụng time. strftime [ddmmyyyy có thể được biểu diễn dưới dạng ‘%d%m%Y’]
fileStatsObj = os.stat [ filePath ] modificationTime = time.ctime [ fileStatsObj [ stat.ST_MTIME ] ] print["Last Modified Time : ", modificationTime ]9
Như bạn có thể thấy, định dạng mới là ddmmyyyy
Last Modified Time : Sun Feb 25 15:04:09 20180
Giả sử bạn cũng muốn bao gồm giờ, phút và giây [ngoài ngày]. Trong trường hợp đó, hãy sử dụng '%d%m%Y %H. %M. %S‘ như được chụp bên dưới