Python liệt kê đệ quy các tệp trong thư mục

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

Làm cách nào để liệt kê tất cả các tệp trong thư mục và thư mục con Python?

Để lấy danh sách tất cả các tệp trong một thư mục/thư mục và các thư mục con/thư mục con của nó, chúng tôi sẽ sử dụng os. chức năng đi bộ []. hệ điều hành. walk[] hàm tạo ra một trình vòng lặp trên thư mục hiện tại, các thư mục con và tệp của nó

Làm cách nào để có danh sách tất cả các tệp trong một thư mục và các thư mục con?

Mở File Explorer trong Windows. .
Nhấp vào thanh địa chỉ và thay thế đường dẫn tệp bằng cách nhập cmd rồi nhấn Enter
Điều này sẽ mở một dấu nhắc lệnh đen trắng hiển thị đường dẫn tệp ở trên
Nhập thư mục /A. D. .
Bây giờ sẽ có một tệp văn bản mới có tên là FolderList trong thư mục trên

Làm cách nào để liệt kê tất cả các tệp trong một thư mục có phần mở rộng nhất định trong Python?

Phương pháp os. listdir[] liệt kê tất cả các tệp có trong một thư mục. Chúng ta có thể sử dụng os. walk[] nếu chúng ta cũng muốn làm việc với các thư mục con.

Chủ Đề