Làm cách nào để lấy đường dẫn tệp của tất cả các tệp trong thư mục Python?

Thư viện Python os được sử dụng để liệt kê các tệp trong một thư mục. Hệ điều hành Python. Phương thức listdir() trả về danh sách mọi tệp và thư mục trong một thư mục. hệ điều hành. walk() trả về danh sách mọi tệp trong toàn bộ cây tệp


Thông thường, khi làm việc với các tệp trong Python, bạn sẽ gặp phải tình huống muốn liệt kê các tệp trong một thư mục. Chẳng hạn, bạn có thể muốn tìm tất cả các tệp Python trong một thư mục

Làm cách nào để lấy đường dẫn tệp của tất cả các tệp trong thư mục Python?
Làm cách nào để lấy đường dẫn tệp của tất cả các tệp trong thư mục Python?

Tìm trận đấu Bootcamp của bạn

  • Career Karma kết hợp bạn với các bootcamp công nghệ hàng đầu
  • Truy cập học bổng độc quyền và các khóa học chuẩn bị
Chọn sở thích của bạn
Họ

Họ

E-mail

Số điện thoại


Bằng cách tiếp tục, bạn đồng ý với Điều khoản dịch vụ và Chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận các ưu đãi và cơ hội từ Career Karma qua điện thoại, tin nhắn văn bản và email

Thư viện Python os cung cấp một số phương thức có thể được sử dụng để liệt kê các tệp trong một thư mục. Hướng dẫn này sẽ thảo luận về cách sử dụng os. listdir() để lấy các tệp và thư mục trong một thư mục. Chúng ta cũng sẽ nói về việc sử dụng hệ điều hành. walk() để lấy các tệp và thư mục trong một thư mục và trong các thư mục con của nó

Thư viện hệ điều hành Python

Thư viện Python os cung cấp một số chức năng mà bạn có thể sử dụng để làm việc với các hệ điều hành. Các chức năng có trong mô-đun os hoạt động trên mọi hệ điều hành hiện đại, cho dù đó là Windows, Linux hay Mac

Vì os là một thư viện bên ngoài nên chúng tôi cần nhập nó vào mã của mình trước khi bắt đầu sử dụng. Chúng ta có thể làm như vậy bằng cách sử dụng câu lệnh nhập Python

import os

Bây giờ chúng tôi đã nhập thư viện os vào mã của mình, chúng tôi có thể bắt đầu sử dụng các chức năng của nó để liệt kê các mục trong một thư mục

hệ điều hành Python. listdir()

Trong Python, hệ điều hành. Phương thức listdir() liệt kê các tệp và thư mục trong một thư mục nhất định. Phương thức này không trả về các mục đặc biệt như '. ' Và '. ', mà hệ điều hành sử dụng để điều hướng qua các thư mục khác nhau

hệ điều hành. listdir() cũng không trả về các tệp và thư mục ngoài cấp thư mục đầu tiên. Nói cách khác, hệ điều hành. listdir() không trả về bất cứ thứ gì trong các thư mục con được phát hiện bởi phương thức

» THÊM.   Python Giai thừa. Hướng dẫn

hệ điều hành. listdir() chức năng chấp nhận một tham số. đường dẫn tệp của thư mục có tên tệp và thư mục bạn muốn truy xuất.  

Đây là cú pháp của phương thức listdir

os.listdir(path)

Hãy xem qua một ví dụ để giới thiệu cách sử dụng phương thức này trong chương trình Python.  

hệ điều hành. listdir() Python Ví dụ

Giả sử rằng chúng tôi đang tạo một chương trình phân tích hiệu suất thị trường chứng khoán của Netflix trong thập kỷ qua. Chúng tôi có một thư mục (tên. /home/data_analysis/netflix) với tất cả dữ liệu thô của chúng tôi và trước khi chương trình của chúng tôi bắt đầu chạy, chúng tôi muốn kiểm tra để đảm bảo rằng tệp raw_data_2019. csv tồn tại trong thư mục đó

Để hoạt động bình thường, chương trình của chúng tôi cần tệp cụ thể đó được lưu trữ trong thư mục cụ thể đó

Chúng tôi có thể sử dụng đoạn mã sau để truy xuất danh sách các tệp trong thư mục công việc /home/data_analysis/netflix

import os

path = '/home/data_analysis/netflix'

files = os.listdir(path)

for f in files:
	print(f)

Chương trình của chúng tôi lấy danh sách tất cả các tệp và thư mục trong thư mục đã chỉ định và trả về như sau

README.md
app.py
raw_data_2016.csv
raw_data_2017.csv
raw_data_2018.csv
raw_data_2019.csv
processed_data

Bây giờ, chúng ta có thể kiểm tra xem tệp raw_data_2019 có. csv nằm trong thư mục. Như bạn có thể thấy, nó là

Hãy chia nhỏ mã của chúng tôi. Ở dòng đầu tiên, chúng tôi nhập mô-đun os, điều chúng tôi cần thực hiện để truy cập mô-đun os. hàm listdir(). Sau đó, chúng tôi khai báo một biến Python có tên là đường dẫn, lưu trữ tên của đường dẫn có nội dung mà chúng tôi muốn truy xuất

Trên dòng tiếp theo, chúng tôi sử dụng os. listdir() để lấy danh sách các tệp và thư mục trong thư mục /home/data_analysis/netflix. Cuối cùng, chúng ta tạo một vòng lặp Python for. Vòng lặp này lặp qua mọi mục trong danh sách được tạo bởi hệ điều hành. listdir(). Chúng tôi in tên của từng tệp ra bàn điều khiển bằng cách sử dụng câu lệnh print() của Python

» THÊM.   Cách xóa các bản sao khỏi danh sách trong Python

Thư mục /home/data_analysis/netflix chứa sáu tệp và một thư mục. Thư mục được gọi là process_data và có thể phân biệt với các tệp khác vì nó không có phần mở rộng

hệ điều hành Python. đi bộ()

hệ điều hành. Hàm walk() truy xuất danh sách các tệp có trong cây. Phương thức lặp qua từng thư mục trong cây. Sau đó, hệ điều hành. walk() trả về tên của mọi tệp và thư mục trong một thư mục và bất kỳ thư mục con nào của nó

Cú pháp cho os. phương thức walk() như sau

os.walk(top, topdown, onerror, followlinks)

hệ điều hành. phương thức walk() chấp nhận bốn tham số

  • top là thư mục trên cùng chứa tên tệp thành phần và tên thư mục bạn muốn truy xuất (bắt buộc)
  • topdown, khi được đặt thành True, chỉ định rằng các thư mục sẽ được quét từ trên xuống. Nếu giá trị này được đặt thành Sai, các thư mục sẽ được quét từ dưới lên (tùy chọn)
  • onerror cung cấp trình xử lý lỗi nếu gặp lỗi (tùy chọn)
  • liên kết theo dõi, nếu được đặt thành True, sẽ truy cập các thư mục được tham chiếu bởi liên kết hệ thống (tùy chọn)

Chúng tôi sẽ tập trung vào hai tham số đầu tiên vì onerror và followlinks nâng cao hơn và không được sử dụng phổ biến

hệ điều hành. walk() Ví dụ về Python

Giả sử rằng chúng tôi muốn truy xuất tên của tất cả các tệp trong thư mục /home/data_analysis/netflix. Chúng tôi cũng muốn tìm hiểu những gì được đính kèm trong tất cả các thư mục con trong thư mục đó

Như chúng ta đã thảo luận ở trên, thư mục Netflix chứa một thư mục. xử_dữ_liệu. Chúng tôi có thể sử dụng đoạn mã sau để truy xuất tên của tất cả các tệp trong thư mục /home/data_analysis/netflix và các thư mục con của nó

import os

path = '/home/data_analysis/netflix'

for root, directories, files in os.walk(path, topdown=False):
	for name in files:
		print(os.path.join(root, name))
	for name in directories:
		print(os.path.join(root, name))

Đây là đầu ra từ mã của chúng tôi

/home/data_analysis/netflix/README.md
/home/data_analysis/netflix/app.py
/home/data_analysis/netflix/raw_data_2016.csv
/home/data_analysis/netflix/raw_data_2017.csv
/home/data_analysis/netflix/raw_data_2018.csv
/home/data_analysis/netflix/raw_data_2019.csv
/home/data_analysis/netflix/processed_data
/home/data_analysis/netflix/processed_data/final.csv

Chúng tôi nhập mô-đun os từ đó chúng tôi tham chiếu os. đi bộ () và hệ điều hành. con đường. các phương thức join() sau này trong mã của chúng tôi. Sau đó, chúng tôi khai báo một biến có tên là đường dẫn, lưu trữ đường dẫn có tên tệp mà chúng tôi muốn khám phá

» THÊM.   Thay thế mục trong danh sách bằng Python. Hướng dẫn đầy đủ

Làm cách nào để lấy đường dẫn tệp của tất cả các tệp trong thư mục Python?
Làm cách nào để lấy đường dẫn tệp của tất cả các tệp trong thư mục Python?

"Career Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi phù hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với giá trị và mục tiêu của mình trong cuộc sống. "

Venus, Kỹ sư phần mềm tại Rockbot

Find Your Bootcamp Match

Sau đó, chúng tôi tạo một vòng lặp for sử dụng os. walk() để lấy danh sách tất cả các tệp và thư mục trong thư mục đường dẫn. Vòng lặp đó lặp qua các tệp và thư mục mà hệ điều hành. walk() trả về. Cần lưu ý rằng chúng tôi chỉ định tham số topdown=False trong hệ điều hành. walk(), cho biết mã của chúng tôi tiến hành tìm kiếm từ trên xuống

Vòng lặp for của chúng tôi lặp qua từng tệp và thư mục được hệ điều hành phát hiện. walk() sử dụng vòng lặp for bổ sung. Chúng tôi in ra các tập tin trong os. walk() đến bàn điều khiển

Trong mã của chúng tôi ở trên, đây là vòng lặp for của chúng tôi

for root, directories, files in os.walk(path):
	for name in files:
		print(os.path.join(root, name))
	for name in directories:
		print(os.path.join(root, name))

Sau đó, chương trình của chúng tôi sử dụng os. con đường. join() để nối thư mục gốc của mỗi tệp (i. e. /home/data_analysis/netflix)và tên của tệp (i. e. raw_datra_2019. csv). Thư mục gốc đề cập đến đường dẫn thư mục mà tệp tồn tại

Phần kết luận

Bạn có thể sử dụng phương thức listdir() của Python để làm điều này. Bạn cũng có thể sử dụng phương thức walk(), liệt kê mọi thứ trong một thư mục, bao gồm mọi thứ trong các thư mục con

Hướng dẫn này đã khám phá, cung cấp các ví dụ, cách sử dụng hệ điều hành. listdir() và hệ điều hành. walk() để liệt kê các tệp và thư mục trong một thư mục trong Python. Bây giờ bạn đã có các kỹ năng cần thiết để liệt kê các tệp trong một thư mục bằng Python như một chuyên gia

Để tìm hiểu thêm về viết mã bằng Python, hãy đọc toàn bộ hướng dẫn Cách học Python của chúng tôi



Về chúng tôi. Career Karma là một nền tảng được thiết kế để giúp người tìm việc tìm kiếm, nghiên cứu và kết nối với các chương trình đào tạo việc làm để thăng tiến trong sự nghiệp của họ. Tìm hiểu về ấn phẩm CK

Làm cách nào để lấy 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ó

Có cách nào để lấy danh sách tất cả các tệp trong một thư mục không?

Nhấn và giữ phím SHIFT rồi nhấp chuột phải vào thư mục chứa các tệp bạn cần liệt kê . Nhấp vào Mở cửa sổ lệnh tại đây trên menu mới. Một cửa sổ mới có chữ trắng trên nền đen sẽ xuất hiện. o Ở bên trái của con trỏ nhấp nháy, bạn sẽ thấy đường dẫn thư mục mà bạn đã chọn ở bước trước.