Liệt kê tất cả các tệp trong thư mục con Python
Bạn đã bao giờ tìm kiếm "Làm cách nào để tôi liệt kê tất cả các tệp của một thư mục?" . ”? Show Sau đó, bài viết này sẽ là giải pháp một cửa cho tất cả các câu hỏi của bạn Là một chuyên gia phân tích, tôi sử dụng Python trong công việc hàng ngày của mình. Thường thì tôi cần lấy tất cả các tệp từ một thư mục và thư mục con. Và tôi chắc chắn rằng bạn cũng gặp trường hợp tương tự Do đó, tôi đã tóm tắt 3 cách nhanh chóng để tìm nạp tất cả các tệp từ một thư mục hoặc thư mục con. Và luôn có một cách phù hợp với yêu cầu chính xác của bạn Để làm ví dụ, tôi đang sử dụng mẫu thư mục bên dưới Jupyter-Notebook sẽ đọc nội dung của thư mục import os 0 nằm trong thư mục import os 1Bắt đầu nào Tùy theo nhiệm vụ của mình, bạn có thể sử dụng một hoặc kết hợp nhiều cách dưới đây Tôi sẽ bắt đầu với cách đơn giản nhất Giả sử, bạn muốn liệt kê tất cả các tệp có trong thư mục import os 0. Vì vậy, bạn có thể sử dụng chức năng nói đúng mục đích của nó trong tên i. e. import os 3hệ điều hành. listdir()Mô-đun Python import os 4 cung cấp chức năng này và đúng như tên gọi của nó, bạn có thể lấy danh sách tất cả các tệp, thư mục và thư mục con có trong Đường dẫnTrước khi sử dụng chức năng này, đừng quên nhập mô-đun import os 5. Trong ví dụ này, để liệt kê tất cả các tệp có trong import os 0, tất cả những gì bạn cần làm là — cung cấp đường dẫn đến thư mục này trong hàm import os 7. Nếu thư mục này không có trong đường dẫn hiện tại của bạn, thì bạn cần thêm nó vào đường dẫn
Bạn có thể sử dụng một chức năng khác import os 8 để có được đường dẫn hiện tạiimport os Như bạn có thể thấy, đường dẫn hiện tại đang trỏ đến thư mục Thách thức trong đó Jupyter-Notebook này được lưu trữ Bạn cần thêm thư mục import os 9 vào đường dẫn này theo cách thủ công, để lấy danh sách tất cả các tệp trong đó, như hình bên dướiimport os Đơn giản. Bạn có danh sách tất cả các tệp trong thư mục Danh sách này chứa tất cả các tệp và thư mục con có trong đường dẫn được cung cấp Ngoài ra, để lấy danh sách tất cả các thư mục, thư mục con và tệp trong thư mục con, bạn có thể sử dụng chức năng phức tạp hơn từ mô-đun os hệ điều hành. đi bộ()Đúng như tên gọi của nó, chức năng này sẽ hướng dẫn bạn qua cây thư mục theo đúng nghĩa đen Phương thức này trong Python hoạt động tương tự như import os 7, nhưng thay vì danh sách tất cả nội dung trong đường dẫn được cung cấp, path = os.getcwd()+'\\01_Main_Directory' 1 trả về một bộ gồm 3 phần tử, chứa —
Hãy xem hoạt động của chức năng này để dễ hiểu path = os.getcwd()+'\\01_Main_Directory' Dòng đầu tiên của đầu ra sẽ luôn là đường dẫn đến thư mục hiện tại hoặc dòng được cung cấp làm đầu vào cho path = os.getcwd()+'\\01_Main_Directory' 1. Nó được theo sau bởi đường dẫn đến các thư mục con theo thứ tự bảng chữ cáiĐể có được danh sách tất cả các thư mục trong đường dẫn được cung cấp, bạn có thể sử dụng biến thứ hai trong đối tượng trình tạo path = os.getcwd()+'\\01_Main_Directory' 1, như được hiển thị bên dướipath = os.getcwd()+'\\01_Main_Directory' tương tự như path = os.getcwd()+'\\01_Main_Directory' 7, dòng đầu tiên của kết quả này sẽ là danh sách tất cả các thư mục con có trong đường dẫn được cung cấp. Dòng thứ hai và thứ ba liệt kê các thư mục có trong các thư mục con nàyTrong ví dụ này, không có thư mục nào trong path = os.getcwd()+'\\01_Main_Directory' 8 và path = os.getcwd()+'\\01_Main_Directory' 9. Vì vậy, các dòng đầu ra còn lại hiển thị danh sách trốngTương tự, sử dụng phần tử cuối cùng của bộ dữ liệu, bạn có thể truy xuất tất cả các tệp có trong đường dẫn path = os.getcwd()+'\\01_Main_Directory' Vì tất cả các tệp chỉ có trong import os 9, dòng đầu tiên của kết quả liệt kê tất cả các tệpĐiều này đặc biệt hữu ích khi bạn chỉ muốn xem những tệp nào có trong thư mục. Để làm việc với các tệp này, bạn sẽ cần đường dẫn tệp Và đó là nơi một mô-đun khác — path = os.getcwd()+'\\01_Main_Directory' 1 — sẽ giúp bạn đạt được điều đótoàn cầu — Mở rộng mẫu tên đường dẫn kiểu UnixMô-đun này hữu ích đối với các đường dẫn tệp khớp với mẫu nhất định — được chỉ định trong hàm path = os.getcwd()+'\\01_Main_Directory' 2 trong mô-đun toàn cục Python. Mẫu mà bạn nên đề cập trong hàm path = os.getcwd()+'\\01_Main_Directory' 3 phải tuân theo các quy tắc mở rộng đường dẫn UnixĐể có được đường dẫn đến các tệp trong các thư mục tiếp theo, tất cả những gì bạn cần làm là cung cấp đường dẫn đến thư mục mà bạn đã lưu trữ các tệp. Và bạn có thể linh hoạt cung cấp đường dẫn tệp tuyệt đối cũng như tương đối Ví dụ: giả sử bạn muốn truy xuất tất cả các tệp trong import os 9, tất cả những gì bạn cần làm là cung cấp đường dẫn đến thư mục nàyimport glob Điều này chỉ đơn giản là trả về đường dẫn đến import os 9 vì đường dẫn được cung cấp trong path = os.getcwd()+'\\01_Main_Directory' 6 kết thúc trên thư mục nàyĐể truy xuất tất cả các tệp, bạn thực sự nên chỉ định đường dẫn vượt ra ngoài thư mục này, như được hiển thị bên dưới path = os.getcwd()+'\\01_Main_Directory\\*' Như bạn có thể thấy, đường dẫn ở đây được mở rộng để đi vào bên trong thư mục import os 9 bằng cách sử dụng path = os.getcwd()+'\\01_Main_Directory' 8. Ở đây, dấu hoa thị (path = os.getcwd()+'\\01_Main_Directory' 9) là một ký tự đại diện có nghĩa là chọn tất cả các tệp trong thư mụcTuy nhiên, bạn thường biết phần cuối của tên tệp hoặc chỉ vài ký tự trong tên tệp Chẳng hạn, giả sử bạn muốn lấy tất cả đường dẫn tệp từ thư mục này chứa chuỗi path = os.getcwd()+'\\01_Main_Directory' 0 trong tên của nó. Bạn có thể sử dụng hàm path = os.getcwd()+'\\01_Main_Directory' 3 một cách rất đơn giản như hình bên dướipath = os.getcwd()+'\\01_Main_Directory\\*1.*' Điều này đã tìm nạp tất cả các tên tệp có 1 trong tên của chúng, nhưng đầu ra chứa tất cả các loại tệp Điều gì sẽ xảy ra nếu bạn chỉ muốn kéo. txt từ các thư mục ?? Giống như trường hợp sử dụng bạn đã thấy ở trên, bạn cần viết một mẫu. Chắc chắn, các. txt sẽ có path = os.getcwd()+'\\01_Main_Directory' 2 ở cuối. Và bạn muốn tìm nạp tất cả các tệp để bạn có thể sử dụng dấu hoa thị ký tự đại diện (path = os.getcwd()+'\\01_Main_Directory' 9). Vì vậy, mẫu bạn cung cấp trong path = os.getcwd()+'\\01_Main_Directory' 3 là path = os.getcwd()+'\\01_Main_Directory' 5 và bạn có thể sử dụng nó như hình bên dướipath = os.getcwd()+'\\01_Main_Directory\\*.txt' Chơi lô tô. Bạn có đường dẫn đến tất cả các tệp văn bản trong thư mục. Tương tự như vậy, để có được tất cả các. docx, bạn cần cung cấp mẫu path = os.getcwd()+'\\01_Main_Directory' 6 trong phần path = os.getcwd()+'\\01_Main_Directory' 3Đi trước một bước, giả sử bạn muốn lấy tất cả các tệp trong các thư mục con — cả path = os.getcwd()+'\\01_Main_Directory' 8 và path = os.getcwd()+'\\01_Main_Directory' 9, thì glob() là hàm hữu ích nhấtTất cả những gì bạn cần làm là sử dụng mẫu ký tự đại diện import glob 0 trong đường dẫn. Tại đây bạn cần thiết lập thông số import glob 1 , như hình bên dướipath = os.getcwd()+'\\01_Main_Directory\\**\\*.txt' Mẫu import glob 0 trong đường dẫn sẽ khớp với tất cả các thư mục và tệp có trong thư mục import glob 3Đó là tất cả Tôi hy vọng bạn thấy bài viết này hữu ích để tham khảo nhanh Chắc chắn có thể có nhiều công cụ hơn từ các gói Python khác nhau, chẳng hạn như import glob 4 và import glob 5 , nhưng ba chức năng được đề cập ở trên là đơn giản và thường được sử dụngNếu bạn muốn đọc một bài viết tuyệt vời như vậy trên Phương tiện, hãy cân nhắc trở thành Thành viên Phương tiện để có quyền truy cập không giới hạn vào tất cả các bài viết Bạn có thể sử dụng liên kết giới thiệu của tôi bên dưới để tham gia Medium. Nó sẽ giúp tôi và các tác giả khác, vì Phương tiện chia sẻ một phần nhỏ trong số 5 đô la của bạn với chúng tôi 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?Sử dụng hệ điều hành. hàm listdir()
. Hàm listdir('path') trả về một danh sách chứa tên của các tệp và thư mục có trong thư mục được cung cấp bởi đường dẫn.
Làm cách nào để tìm kiếm các tệp cụ thể trong thư mục con trong Python?Cách tiếp cận. . sử dụng toàn cầu. glob(path, recursive=True) để cho phép Python tìm kiếm đệ quy các thư mục con hiện có /**/*. tiện ích mở rộng đảm bảo rằng tất cả các thư mục con được khớp và. . toàn cầu chỉ cần trả về đường dẫn của tệp Làm cách nào tôi có thể nhận danh sách tất cả các thư mục con và tệp có trong một thư mục bằng PHP?PHP sử dụng scandir() để tìm các thư mục trong một thư mục
. Nó liệt kê các tệp và thư mục có trong đường dẫn do người dùng chỉ định. |