Python so sánh thời gian sửa đổi tệp với datetime

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

  1. Đầ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]
  2. 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 2018
0

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

Làm cách nào để có được ngày sửa đổi cuối cùng của tất cả các tệp trong một thư mục bằng Python?

Trăn. Nhận ngày và giờ sửa đổi lần cuối của tệp. .
tệpStatsObj = os. thống kê [ filePath ].
# Nhận tệp Dấu thời gian sửa đổi lần cuối chỉ tính bằng giây kể từ kỷ nguyên. .
# Chuyển đổi giây kể từ kỷ nguyên thành Chỉ ngày. .
modTimesinceEpoc = os. đường dẫn. .
modTimesinceEpoc = os. đường dẫn

Có thể so sánh datetime với Python không?

So sánh ngày khá dễ dàng trong Python. Có thể dễ dàng so sánh các ngày bằng cách sử dụng các toán tử so sánh [như vv. ] . Hãy xem cách so sánh ngày với sự trợ giúp của mô-đun datetime bằng Python.

Python so sánh giờ và phút như thế nào?

Bạn có thể sử dụng ngày giờ. timedelta để so sánh một cách đáng tin cậy. Bạn có thể chỉ định một delta theo các đơn vị thời gian khác nhau [giờ, phút, giây, v.v. ] Sau đó, bạn không phải lo lắng về việc chuyển đổi sang giờ, phút, v.v.

Chủ Đề