Đọc tất cả các tệp trong một thư mục 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ó

Trong hướng dẫn này, chúng ta sẽ xem qua một số ví dụ minh họa cách lấy danh sách tất cả các tệp trong một thư mục và các thư mục con của nó

ví dụ 1. Lấy danh sách tất cả các tập tin

Trong ví dụ này, chúng tôi sẽ lấy một đường dẫn của một thư mục và cố gắng liệt kê tất cả các tệp trong thư mục và các thư mục con của nó theo cách đệ quy

Chương trình Python

import os

path ="C:/workspace/python"
#we shall store all the file names in this list
filelist = []

for root, dirs, files in os.walk[path]:
	for file in files:
        #append the file name to the list
		filelist.append[os.path.join[root,file]]

#print all the file names
for name in filelist:
    print[name]

Chúng tôi đã sử dụng Python For Loop lồng nhau trong chương trình trên

đầu ra

C:\pythonexamples\python-create-directory.png
C:\pythonexamples\python-remove-file.png
C:\pythonexamples\scatter-plot-example.py
C:\pythonexamples\tkinter-example.py
C:\pythonexamples\sample\example.py
C:\pythonexamples\sample\example1.py

ví dụ 2. Lấy danh sách tất cả các tệp có phần mở rộng cụ thể

Trong ví dụ này, chúng tôi sẽ lấy đường dẫn của một thư mục và cố gắng liệt kê tất cả các tệp, với phần mở rộng cụ thể. py ở đây, trong thư mục và các thư mục con của nó theo cách đệ quy

Chương trình Python

import os

path ="C:\workspace\python"

for root, dirs, files in os.walk[path]:
	for file in files:
		if[file.endswith[".py"]]:
			print[os.path.join[root,file]]

đầu ra

C:\pythonexamples\scatter-plot-example.py
C:\pythonexamples\tkinter-example.py
C:\pythonexamples\sample\example.py
C:\pythonexamples\sample\example1.py

Tóm lược

Trong hướng dẫn Ví dụ về Python này, chúng ta đã học cách lấy danh sách tất cả các tệp trong một thư mục và các thư mục con của nó

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

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
Tên đầu tiên

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.   Chữ thường Python. Hướng dẫn từng bước

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.   Lỗi kiểu Python. không thể nhân chuỗi với kiểu 'float' không phải kiểu int Giải pháp

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

________số 8_______

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. đường dẫn. 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.   Lỗi cú pháp Python. Giải pháp vòng lặp bên ngoài ‘phá vỡ’

"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. đường dẫn. 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 để liệt kê tất cả các tệp trong một thư mục và thư mục con trong 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 tên tệp trong thư mục Python?

Tất cả các tệp và thư mục con bên trong một thư mục có thể được truy xuất bằng phương thức listdir[]. Phương thức này nhận vào một đường dẫn và trả về danh sách các thư mục con và tệp trong đường dẫn đó. Nếu không có đường dẫn nào được chỉ định, nó sẽ trả về danh sách các thư mục con và tệp từ thư mục làm việc hiện tại

Chủ Đề