Hướng dẫn danh sách thư mục Python cho biết cách liệt kê nội dung thư mục trong Python. Nhiều ví dụ cho thấy cách liệt kê nội dung thư mục và lọc nó
Thư mục là một đơn vị tổ chức trong hệ thống tệp của máy tính để lưu trữ và định vị tệp. Các thư mục được tổ chức theo thứ bậc thành một cây thư mục. Các thư mục có mối quan hệ cha-con. Thư mục đôi khi còn được gọi là thư mục
Trong những năm qua, Python đã có nhiều API để liệt kê nội dung thư mục. Chẳng hạn, chúng ta có thể sử dụng các hàm
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]7,
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]8,
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]9,
dirs = [e for e in path.iterdir[] if e.is_dir[]]0 hoặc
dirs = [e for e in path.iterdir[] if e.is_dir[]]1
Đường dẫn Python. iterdir
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]7 mang lại các đối tượng đường dẫn của nội dung thư mục. Những đứa trẻ được đưa ra theo thứ tự tùy ý, và các mục đặc biệt '. ' và '. ' không bao gồm
#!/usr/bin/python from pathlib import Path path = '.' for path in Path[path].iterdir[]: print[path]
Ví dụ liệt kê nội dung của thư mục hiện tại. Danh sách không đệ quy và bao gồm cả tệp và thư mục
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...
Đây là một đầu ra mẫu
Ví dụ sau đây cho thấy cách chỉ liệt kê các thư mục
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]
Ví dụ hiển thị tất cả các thư mục con ngay lập tức của thư mục hiện tại
dirs = [e for e in path.iterdir[] if e.is_dir[]]
Chúng tôi xây dựng một danh sách các thư mục bằng cách sử dụng hiểu danh sách Python.
dirs = [e for e in path.iterdir[] if e.is_dir[]]3 trả về
dirs = [e for e in path.iterdir[] if e.is_dir[]]4 cho một mục nhập thư mục
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]2
Trong một vòng lặp for, chúng tôi in tất cả các thư mục mà chúng tôi đã tìm thấy. Chúng tôi có thể hiển thị toàn bộ đường dẫn hoặc sử dụng
dirs = [e for e in path.iterdir[] if e.is_dir[]]5 để chỉ hiển thị một phần của tệp
Đường dẫn Python. tập tin danh sách iterdir
Ví dụ sau đây cho thấy cách chỉ liệt kê các tệp
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]4
Ví dụ liệt kê tất cả các tệp trong thư mục đã cho. Chúng tôi sử dụng
dirs = [e for e in path.iterdir[] if e.is_dir[]]6 để kiểm tra xem mục nhập có phải là tệp không
Ví dụ sau đây cho thấy một ví dụ mã rất ngắn gọn
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]6
dirs = [e for e in path.iterdir[] if e.is_dir[]]7 trả về một trình tạo. Với toán tử
dirs = [e for e in path.iterdir[] if e.is_dir[]]8, chúng tôi giải nén nó thành các đối số cho hàm
dirs = [e for e in path.iterdir[] if e.is_dir[]]9
Thư mục danh sách Python với Đường dẫn. quả địa cầu
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]20 mang lại tất cả các tệp khớp với mẫu đơn giản đã cho. Mẫu
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]21 có nghĩa là thư mục này và tất cả các thư mục con, theo cách đệ quy. Chẳng hạn,
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]22 tìm thấy tất cả các tệp Python trong thư mục này và tất cả các thư mục con của nó
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]3
Ví dụ in tất cả các tệp kết thúc bằng phần mở rộng
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]23 trong thư mục hiện tại
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]5
Đây là một đầu ra mẫu
dirs = [e for e in path.iterdir[] if e.is_dir[]]0 là một cuộc gọi thuận tiện cho
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]20 với
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]26 được thêm vào trước mẫu tương đối đã cho
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]9
Ví dụ tìm tất cả các tệp Python trong thư mục đã cho và tất cả các thư mục con của nó. Mã nhận xét thực hiện công việc tương tự
Thư mục danh sách Python có nhiều phần mở rộng
Ví dụ sau liệt kê tất cả các tệp có ba phần mở rộng có thể
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...0
Ví dụ liệt kê tất cả các tệp
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]23,
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]28 và
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]29
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...1
Chúng tôi sử dụng cách hiểu tập hợp để xây dựng một tập hợp các tệp có phần mở rộng được cung cấp
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...2
Đây là một đầu ra mẫu
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]8 đã được giới thiệu trong Python 3. 5 với mục đích cải thiện hiệu suất và giảm thiểu một số hạn chế của
dirs = [e for e in path.iterdir[] if e.is_dir[]]1 cũ hơn
Hàm
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]42 trả về các mục nhập thư mục cùng với thông tin thuộc tính tệp, mang lại hiệu suất tốt hơn cho nhiều trường hợp sử dụng phổ biến
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...3
Ví dụ liệt kê tất cả các tệp trong thư mục làm việc hiện tại
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]9 đi qua thư mục đã cho theo cách đệ quy;
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...4
Ví dụ liệt kê tất cả các tệp Python. Để kiểm tra xem một tệp có phải là tệp Python hay không, chúng tôi sử dụng hàm
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]44
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]9 trả về một iterator của os. Các đối tượng DirEntry tương ứng với các mục trong thư mục được cung cấp bởi đường dẫn
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...5
Ví dụ sử dụng hàm
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]42 cùng với trình tạo và các mẫu đệ quy để tìm đệ quy tất cả các tệp trong thư mục đã cho
Chương trình thực tế sau xuất nội dung của thư mục đã chỉ định trong cấu trúc cây phân cấp
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...6
Ví dụ tạo cây thư mục từ thư mục Downloads
Python liệt kê các tệp thư mục theo kích thước
Ví dụ sau liệt kê các tệp được lọc theo kích thước
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...7
Ví dụ in tất cả các tệp lớn hơn 1GB trong thư mục Tải xuống. Chúng tôi sử dụng
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]47 để đi bộ theo cách đệ quy và
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]48 để xác định kích thước tệp
Ví dụ sau liệt kê tất cả các tệp theo ngày sửa đổi
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...8
Trong ví dụ này, chúng tôi liệt kê tất cả các tệp đã được sửa đổi trong 30 phút qua. Chúng tôi sử dụng chức năng
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]49 để lấy ngày sửa đổi của tệp và
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]9 để liệt kê nội dung
Thư mục danh sách Python với os. danh sách
dirs = [e for e in path.iterdir[] if e.is_dir[]]1 trả về một danh sách chứa tên của các mục trong thư mục được cung cấp bởi đường dẫn. Danh sách này theo thứ tự tùy ý và không bao gồm các mục đặc biệt '. ' và '. '
Đây là API cũ hơn và thường được khuyến nghị sử dụng các API mới hơn cho danh sách thư mục
$ ./listing.py recursive_glob.py list_dir_files2.py multiple_extensions.py walking3.py list_files.py temperatures.csv list_pandas.py src ...9
Ví dụ liệt kê tất cả các tệp và thư mục trong thư mục hiện tại
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]0
Trong ví dụ này, chúng tôi liệt kê tất cả các tệp trong thư mục làm việc hiện tại. Chúng tôi sử dụng các hàm
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]62 và
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]63 tích hợp
Mô-đun
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]64 cung cấp hỗ trợ cho các ký tự đại diện kiểu hệ vỏ Unix. Chúng không giống như các biểu thức thông thường. Các ký tự đặc biệt được sử dụng trong ký tự đại diện kiểu shell làPatternMeaning*khớp với mọi thứ?khớp với bất kỳ ký tự đơn lẻ nào[seq]khớp với các ký tự trong seq[. seq] khớp với các ký tự không có trong seq
Cái bàn.
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]64 ký tự đặc biệt
Hàm
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]64 lấy tên tệp và mẫu làm tham số
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]1
Trong ví dụ này, chúng tôi liệt kê tất cả các tệp CSV
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]2
Chúng tôi có ba tệp CSV trong thư mục
Pandas là một công cụ thao tác và phân tích dữ liệu Python. Ví dụ sau hiển thị danh sách thư mục trong Pandas DataFrame
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]3
Trong ví dụ này, chúng tôi hiển thị tên tệp, hậu tố và ngày tạo của chúng cho các mục nhập tệp đầu tiên trong Khung dữ liệu Pandas
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]4
Đây là một đầu ra mẫu
PrettyTable là một thư viện Python để tạo các bảng ASCII đơn giản
#!/usr/bin/python from pathlib import Path path = Path['.'] dirs = [e for e in path.iterdir[] if e.is_dir[]] for dir in dirs: print[dir] #print[dir.parts[-1]]5
Chúng tôi hiển thị tên tệp của thư mục hiện tại, hậu tố và ngày tạo của chúng trong một bảng được tạo bởi PrettyTable