2017-03-13 46 views
5

Tôi có thể truy xuất danh sách các tệp có tên tương tự. Những gì tôi đang cố gắng làm là lấy tập tin mới nhất để được thao tác. Với glob, tôi có thể lấy tất cả các tập tin, nhưng không phải là một tập tin cụ thể.Python glob - lấy tệp mới nhất từ ​​danh sách

Đây là mẫu mã của tôi:

permissionCurrentDate = '\n'.join(glob.iglob(os.path.join("PermissionsOnSystems*"))) 

Dưới đây là kết quả khi tôi in nó:

PermissionsOnSystems2.txt 

PermissionsOnSystems20170313-144036.txt 

Những gì tôi muốn chỉ là PermissionsOnSystems20170313-144036.txt.

Tôi làm cách nào để thực hiện việc này?

Cảm ơn!

Trả lời

5

Tùy thuộc vào nếu bạn muốn tệp mới nhất từ ​​góc độ truy cập, thời gian thay đổi siêu dữ liệu hoặc sửa đổi thời gian, bạn có thể sử dụng os.path.getatime, os.path.getctime hoặc os.path.getmtime. Vì vậy, một cái gì đó như:

max(glob.iglob('PermissionsOnSystems*'), key=os.path.getmtime) 
+0

Điều này làm việc cho tôi, cảm ơn! – Glitteropia

+0

Vì điều này đòi hỏi phải gọi stat() trên nhiều tệp trong một thư mục, scandir có thể hiệu quả hơn. –

Các vấn đề liên quan