Tập tin vòng lặp trong thư mục python

Python là ngôn ngữ lập trình máy tính dễ học và dễ sử dụng. Nó là một trong những ngôn ngữ lập trình phổ biến nhất hiện có. Trong thời đại kỹ thuật số này, nơi mọi người đang tìm cách tự động hóa doanh nghiệp của họ, Python đang trên đà phát triển

Một trong nhiều điều mà các nhà phát triển Python phải làm đi làm lại nhiều lần là lặp qua các tệp trong một thư mục

Trong bài viết này, chúng tôi sẽ chỉ cho bạn một vài cách khác nhau để lặp for từng tệp trong một thư mục, cả khi có và không nhập gói bổ sung

nội dung

Lặp lại các tệp trong một thư mục nhất định bằng os. con đường

Mô-đun os cung cấp giao diện thống nhất cho nhiều tính năng phổ biến của hệ điều hành trong các nền tảng khác nhau

Tùy thuộc vào nền tảng mà chương trình đang chạy, mô-đun os có thể tự động tải triển khai phù hợp (cho dù đó là posix hoặc nt ) và thực hiện lệnh gọi hệ thống phù hợp

os được đóng gói như một phần của gói tiêu chuẩn Python, vì vậy việc sử dụng nó sẽ giảm bớt sự phụ thuộc của bạn rất nhiều. Dưới đây là một đoạn mã nhỏ nơi chúng tôi lặp qua các tệp trong một thư mục nhất định và in tên của chúng bằng cách sử dụng

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
0

import os for filename in os.listdir('/home/linuxpip'): if filename.endswith(".py"): print(filename) else: continue

Code language: PHP (php)

Ngoài ra, bạn có thể sử dụng

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
1 để lặp qua các tệp trong một thư mục. Chỉ cần nhớ rằng hàm

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
1 trả về 3-tuple, bao gồm dirpath, dirnames và filenames

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)

Lặp lại các tệp trong một thư mục nhất định bằng pathlib

đường dẫn (Python 3. 4+) là cách mới hơn để tương tác với hệ thống tệp theo cách thống nhất

Tại sao

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
3 khi bạn đã có os, bạn có thể hỏi. Vấn đề là os coi các đường dẫn là các chuỗi, vì vậy bạn không thể biết thêm bất kỳ chi tiết nào về một đường dẫn cụ thể trừ khi viết thêm một vài dòng mã. Bên cạnh đó, mô-đun os không cho phép bạn tìm các đường dẫn khớp với một mẫu nhất định bên trong một hệ thống phân cấp nguyên bản. Ngoài ra,

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
3 cung cấp rất nhiều cách tiếp cận hợp lý hơn để quản lý và tương tác với các đường dẫn hệ thống tệp trên các hệ điều hành khác nhau

Để lặp qua các tệp trong một thư mục nhất định, bạn chỉ cần sử dụng

from pathlib import Path my_dir = Path("/home/linuxpip") for path in dir.iterdir(): print(path)

Code language: JavaScript (javascript)

Trên phiên bản Python cũ hơn, kể cả Python 2, bạn vẫn có thể sử dụng pathlib bằng cách cài đặt nó với pip

pathlib so với hệ điều hành. con đường

Pathlib có cú pháp trực quan hơn, trong khi tôi cảm thấy

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
9 cũ kỹ và lộn xộn vào những thời điểm nhất định. Đối tượng Pathlib có thể tự thực hiện các hoạt động của hệ thống tệp bằng cách gọi các phương thức bên trong của nó, trong khi bạn cần gọi một loạt các hàm

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
9 khác nhau để thực hiện cùng một việc. Pathlib cho phép bạn dễ dàng duyệt qua các đường dẫn bằng hàm

from pathlib import Path my_dir = Path("/home/linuxpip") for path in dir.iterdir(): print(path)

Code language: JavaScript (javascript)
1. Trong khi đó,

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
9 phải dựa vào tên thư mục và chuỗi đường dẫn. Trên hết, Pathlib cho phép bạn lặp lại trên các thư mục và thực hiện khớp mẫu nguyên bản khi

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
9 không. Cuối cùng, mỗi đối tượng

from pathlib import Path my_dir = Path("/home/linuxpip") for path in dir.iterdir(): print(path)

Code language: JavaScript (javascript)
4 của pathlib có nhiều phương thức và thuộc tính hữu ích có thể được sử dụng để thực hiện các hoạt động của hệ thống tệp hoặc nhận các thuộc tính mà bạn phải sử dụng các thư viện bổ sung như

from pathlib import Path my_dir = Path("/home/linuxpip") for path in dir.iterdir(): print(path)

Code language: JavaScript (javascript)
5 hoặc

from pathlib import Path my_dir = Path("/home/linuxpip") for path in dir.iterdir(): print(path)

Code language: JavaScript (javascript)
6 cùng với

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
9

Ví dụ: tham gia các đường dẫn trong

import os if __name__ == "__main__": for (root, dirs, files) in os.walk('/home/linuxpip', topdown=True): print("The files are: ") print(files)

Code language: PHP (php)
9 phải là

os.path.join(os.getcwd(), "processed_data", "output.xlsx")

Code language: Python (python)

Với Pathlib, bạn chỉ cần sử dụng / toán tử để nối các đường dẫn. Một bước đột phá thực sự nâng cao khả năng đọc mã

os.path.join(os.getcwd(), "processed_data", "output.xlsx")

Code language: CSS (css)

Chúng tôi hy vọng rằng bài viết đã giúp bạn biết cách lặp qua các tệp trong một thư mục một cách hiệu quả. Chúng tôi cũng đã viết một vài hướng dẫn khác để sửa các lỗi phổ biến của Python, chẳng hạn như Hết thời gian chờ trong các yêu cầu Python, Nhập chưa được giải quyết của Python trong VSCode hoặc “Lỗi chỉ mục. Liệt kê chỉ mục ngoài phạm vi” trong Python. Nếu bạn có bất cứ đề nghị, xin vui lòng để lại một bình luận dưới đây