Chào các Coder. Trong hướng dẫn Python này, chúng ta sẽ tìm hiểu cách lấy danh sách tên tệp được sắp xếp của một thư mục hoặc thư mục dựa trên ngày và giờ tạo trong Python
Hãy thảo luận về một số mô-đun cần nhập cho hướng dẫn này
dirpath = '/Users/CodeSpeedy/Desktop/Pyfile/' #intialize the path with your own system's directory/file path0. Mô-đun này cung cấp các chức năng khác nhau để thao tác hoặc thay đổi các phần khác nhau của môi trường thời gian chạy Python. Nó cũng cung cấp quyền truy cập vào một số biến được trình thông dịch sử dụng
dirpath = '/Users/CodeSpeedy/Desktop/Pyfile/' #intialize the path with your own system's directory/file path1. Mô-đun này có các chức năng khác nhau để tương tác với hệ điều hành hệ thống. Nó cung cấp một cách di động để sử dụng chức năng phụ thuộc vào hệ điều hành. 'os' và 'os. đường dẫn' mô-đun là một số ví dụ về mô-đun chứa các chức năng hữu ích khác nhau để tương tác với hệ thống tệp
dirpath = '/Users/CodeSpeedy/Desktop/Pyfile/' #intialize the path with your own system's directory/file path0. Mô-đun thời gian được sử dụng để xử lý mọi hoạt động liên quan đến thời gian
dirpath = '/Users/CodeSpeedy/Desktop/Pyfile/' #intialize the path with your own system's directory/file path1. Mô-đun stat xác định các hàm và hằng số khác nhau để diễn giải kết quả của các mô-đun
dirpath = '/Users/CodeSpeedy/Desktop/Pyfile/' #intialize the path with your own system's directory/file path1 khác nhau
Chương trình lấy tên của các tệp được sắp xếp theo ngày tạo trong Python
Bước 1. Nhập tất cả các mô-đun và macro cần thiết cho chương trình Python này bằng cách nhập
import sys, os, time from stat import S_ISREG, ST_CTIME, ST_MODE #S_ISREG used for the interpretation of the values in a stat-struct #ST_CTIME used to represent metadata changes on Unix and creation time on Windows that occurred recently. #ST_MODE contains the file type and mode.
Bước 2. Khai báo biến lưu đường dẫn thư mục/tệp tin
dirpath = '/Users/CodeSpeedy/Desktop/Pyfile/' #intialize the path with your own system's directory/file path
Bước 3. Lấy danh sách tất cả các mục nhập tệp của thư mục đã cho
FiEnt = [os.path.join[dirpath, file_name] for file_name in os.listdir[dirpath]]
Bước 4. Lấy số liệu thống kê của các mục nhập tập tin
FiEnt = [[os.stat[path], path] for path in FiEnt]
Bước5. Chèn ngày tạo bằng cách chỉ để lại các tệp thông thường
FiEnt = [[stat[ST_CTIME], path] for stat, path in FiEnt if S_ISREG[stat[ST_MODE]]]
Bước 6. Cuối cùng, in tên tệp đã sắp xếp trên màn hình đầu ra
for cdate, path in sorted[FiEnt]: print[time.ctime[cdate], os.path.basename[path]]
Đây là chương trình Python hoàn chỉnh
________số 8đầu ra
Mon Oct 4 19:13:14 2021 tcl86t.lib Mon Oct 4 19:13:14 2021 tclConfig.sh Mon Oct 4 19:13:14 2021 tclooConfig.sh Mon Oct 4 19:13:14 2021 tclstub86.lib Mon Oct 4 19:13:14 2021 tk86t.lib Mon Oct 4 19:13:14 2021 tkstub86.lib
Hy vọng bài viết này đã giúp ích cho bạn trong việc tìm hiểu cách lấy tên tệp được sắp xếp từ bất kỳ thư mục nào theo ngày tạo trong Python
Ghi chú. Trong tệp, Hello_Hi_2015-02-20T084521_1424543480. hắc ín. gz --> 2015-02-20T084521 đại diện là "năm-tháng-ngàyTHHMMSS" [Dựa trên điều này tôi muốn sắp xếp]
Nhập tệp bên dưới
file_list = ['Xin chào_Hi_2015-02-20T084521_1424543480. hắc ín. gz',
'Xin chào_Hi_2015-02-20T095845_1424543481. hắc ín. gz',
'Hello_Hi_2015-02-20T095926_1424543481. hắc ín. gz',
'Hello_Hi_2015-02-20T100025_1424543482. hắc ín. gz',
'Hello_Hi_2015-02-20T111631_1424543483. hắc ín. gz',
'Hello_Hi_2015-02-20T111718_1424543483. hắc ín. gz',
'Hello_Hi_2015-02-20T112502_1424543483. hắc ín. gz',
'Hello_Hi_2015-02-20T112633_1424543484. hắc ín. gz',
'Hello_Hi_2015-02-20T113427_1424543484. hắc ín. gz',
'Hello_Hi_2015-02-20T113456_1424543484. hắc ín. gz',
'Hello_Hi_2015-02-20T113608_1424543484. hắc ín. gz',
'Hello_Hi_2015-02-20T113659_1424543485. hắc ín. gz',
'Hello_Hi_2015-02-20T113809_1424543485. hắc ín. gz',
'Hello_Hi_2015-02-20T113901_1424543485. hắc ín. gz',
'Xin chào_Hi_2015-02-20T113955_1424543485. hắc ín. gz',
'Hello_Hi_2015-03-20T114122_1424543485. hắc ín. gz',
'Hello_Hi_2015-02-20T114532_1424543486. hắc ín. gz',
'Hello_Hi_2015-02-20T120045_1424543487. hắc ín. gz',
'Hello_Hi_2015-02-20T120146_1424543487. hắc ín. gz',
'Xin chào_WR_2015-02-20T084709_1424543480. hắc ín. gz',
'Hello_WR_2015-02-20T113016_1424543486. hắc ín. gz']
Đầu ra phải là
file_list = ['Xin chào_Hi_2015-02-20T084521_1424543480. hắc ín. gz',
'Xin chào_WR_2015-02-20T084709_1424543480. hắc ín. gz',
'Xin chào_Hi_2015-02-20T095845_1424543481. hắc ín. gz',
'Xin chào_Hi_2015-02-20T095926_1424543481. hắc ín. gz',
'Hello_Hi_2015-02-20T100025_1424543482. hắc ín. gz',
'Hello_Hi_2015-02-20T111631_1424543483. hắc ín. gz',
'Hello_Hi_2015-02-20T111718_1424543483. hắc ín. gz',
'Hello_Hi_2015-02-20T112502_1424543483. hắc ín. gz',
'Hello_Hi_2015-02-20T112633_1424543484. hắc ín. gz',
'Xin chào_WR_2015-02-20T113016_1424543486. hắc ín. gz',
'Hello_Hi_2015-02-20T113427_1424543484. hắc ín. gz',
'Hello_Hi_2015-02-20T113456_1424543484. hắc ín. gz',
'Hello_Hi_2015-02-20T113608_1424543484. hắc ín. gz',
'Hello_Hi_2015-02-20T113659_1424543485. hắc ín. gz',
'Xin chào_Hi_2015-02-20T113809_1424543485. hắc ín. gz',
'Hello_Hi_2015-02-20T113901_1424543485. hắc ín. gz',
'Hello_Hi_2015-02-20T113955_1424543485. hắc ín. gz',
'Hello_Hi_2015-02-20T114532_1424543486. hắc ín. gz',
'Hello_Hi_2015-02-20T120045_1424543487. hắc ín. gz',
'Hello_Hi_2015-02-20T120146_1424543487. hắc ín. gz',
'Hello_Hi_2015-03-20T114122_1424543485. hắc ín. gz']
Dưới đây là mã mà tôi đã thử.
- def sắp xếp[ dir ]
- hệ điều hành. chdir[ dir ]
- file_list = toàn cầu. toàn cầu ['Xin chào _ *']
- file_list. sắp xếp [key=os. con đường. getmtime]
- in["\n". tham gia [file_list]]
- quay lại 0
7 aug '15 #1
Đây là giải pháp biểu thức chính quy.
- nhập lại
- mẫu = lại. biên dịch [r"^\D+?_\D+?_[. +?]_"]
- def sort_on_TS[a, b]
- trả về cmp[mẫu. phù hợp [a]. nhóm[1], mẫu. trận đấu[b]. nhóm 1]]
- cho mục trong được sắp xếp [file_list, sort_on_TS]
- in mục
- def sort_on_TS[a,b].
- trả về cmp[a. tách["_"][2], b. tách["_"][2]]
- def sort_on_TS[a,b].
- idx1 = a. chỉ mục["_", a. chỉ mục["_"]+1]
- idx2 = a. chỉ mục["_", idx1+1]
- idx11 = b. chỉ mục["_", b. chỉ mục["_"]+1]
- idx22 = b. chỉ mục["_", idx11+1]
- trả về cmp[a[idx1. idx2+1], b[idx11. idx22+1]]
2
Đây là giải pháp biểu thức chính quy.
- nhập lại
- mẫu = lại. biên dịch [r"^\D+?_\D+?_[. +?]_"]
- def sort_on_TS[a, b]
- trả về cmp[mẫu. phù hợp [a]. nhóm[1], mẫu. trận đấu[b]. nhóm 1]]
- cho mục trong được sắp xếp [file_list, sort_on_TS]
- in mục
- def sort_on_TS[a,b].
- trả về cmp[a. tách["_"][2], b. tách["_"][2]]
- def sort_on_TS[a,b].
- idx1 = a. chỉ mục["_", a. chỉ mục["_"]+1]
- idx2 = a. chỉ mục["_", idx1+1]
- idx11 = b. chỉ mục["_", b. chỉ mục["_"]+1]
- idx22 = b. chỉ mục["_", idx11+1]
- trả về cmp[a[idx1. idx2+1], b[idx11. idx22+1]]
7 aug '15 #2
@bvdet. giải pháp tuyệt vời. Cám ơn rất nhiều
8 aug '15 #3
Đăng trả lời của bạn
Đăng nhập để đăng câu trả lời của bạn hoặc Đăng ký một tài khoản miễn phí