Python liệt kê các tập tin

Liệt kê các tệp trong một thư mục bằng Python có nghĩa là lấy tên của các tệp trong một thư mục thông qua các mô-đun và tập lệnh Python. Trong bất kỳ loại Dự án mã hóa và Python nào, việc lấy tên của các tệp trong một thư mục có thể hữu ích. Chỉ lấy một loại tệp nhất định, một số loại tệp nhất định có kích thước dưới hoặc trên một kích thước nhất định tính bằng KB hoặc lấy tệp từ sau một ngày nhất định có thể hữu ích cho việc phân tích, sao chép, di chuyển, hợp nhất các loại tệp khác nhau và nội dung của chúng

Trong bài viết này, chúng tôi sẽ tập trung vào việc liệt kê các tệp bằng Python với các Mô-đun Python khác nhau và tập lệnh tùy chỉnh

Nội dung của Điều thể hiện

  1. 1. Liệt kê các tệp trong một thư mục có Mô-đun hệ điều hành của Python
  2. 2. Làm cách nào để liệt kê một số loại tệp trong thư mục Python?
  3. 3. Làm cách nào để lọc và liệt kê các tệp theo tên của chúng trong Python?
  4. 4. Cách sử dụng Trình tạo Python để liệt kê tệp trong thư mục bằng Python
    1. 4. 1. Liệt kê các tệp trong một thư mục có “os. scandir[]” trong Mô-đun Python của hệ điều hành
  5. 5. Cách liệt kê các tệp trong một thư mục bằng Mô-đun Pathlib Python
    1. 5. 1. Cách lọc và liệt kê các tệp theo tên của chúng thông qua mô-đun Pathlib Python
  6. 6. Suy nghĩ cuối cùng về việc liệt kê các tệp trong một thư mục bằng Python và các trường hợp sử dụng cho SEO và nhà phát triển

Liệt kê các tệp trong một thư mục với Mô-đun hệ điều hành của Python

Mô-đun OS là một Mô-đun Python liên quan đến hệ điều hành và nó có rất nhiều chức năng và phương thức khác nhau để quản lý hệ điều hành của máy tính. Để liệt kê các tệp trong một thư mục, trước tiên, chúng tôi sẽ sử dụng mô-đun “OS” từ Python. Hàm cần thiết để liệt kê các tệp là “os. đi bộ[]". “hệ điều hành. walk[]” trả về tên của thư mục, tên của các thư mục con và tên của các tệp trong thư mục hiện tại. Dưới đây, bạn sẽ thấy một ví dụ về vòng lặp for để liệt kê các tên tệp trong một thư mục

import os

for root, dirs, files in os.walk["."]:
    for filename in files:
        print[filename]
  • Trong ví dụ này, chúng ta đã lồng vòng lặp for
  • Trong dòng đầu tiên của mã, chúng tôi đã nhập mô-đun python “os”
  • Trong dòng thứ hai, chúng tôi đã bắt đầu vòng lặp for của mình, chúng tôi đã tạo một biến cho thư mục gốc, thư mục con và các tệp nằm trong đó
  • Chúng tôi đã nhập tất cả các thư mục con trong thư mục gốc và lấy tất cả các tệp
  • Chúng tôi đã liệt kê tất cả các tên của tệp với chức năng in

Bạn có thể thấy tên tệp trong thư mục làm việc hiện tại là đầu ra của tệp

Bạn có thể xem các tập tin trong thư mục

Nếu bạn chỉ muốn liệt kê các thư mục con trong một thư mục, bạn nên sử dụng mã bên dưới

import os

dirnames = set[dirname]
for root, dirs, files in os.walk["."]:
    for dirname in dirs:
        dirnames.add[dirname]

print[dirnames]

Trong ví dụ này, chúng tôi đã sử dụng các tính năng "đặt" trong Python. Vì chúng tôi đang sử dụng vòng lặp for để thu thập tất cả tên gốc, thư mục và tệp, nếu chúng tôi chỉ muốn tên thư mục, nó sẽ tạo ra các giá trị "trùng lặp" chẳng hạn như "__pycache__" hoặc ". ipynb_checkpoints” cho ví dụ hiện tại của chúng tôi vì tôi đang sử dụng thư mục tài liệu Python cá nhân của riêng mình. Trong Python, các đối tượng “đặt” không có số chỉ mục hoặc giá trị trùng lặp, do đó, chỉ các giá trị duy nhất mới được thêm vào biến “dirnames” của chúng ta thông qua phương thức “add[]”

Bạn sẽ thấy tên thư mục con cho ví dụ hiện tại bên dưới

Bạn có thể thấy tên của tất cả các tệp trong một bộ thông qua Mô-đun hệ điều hành của Python

Nếu bạn muốn xem rõ ràng hơn, bạn có thể sử dụng một vòng lặp for khác để liệt kê tất cả các tên thư mục trong một tệp qua Python

for i in a:
    print[i]

Bạn có thể thấy kết quả bên dưới

Tên các tệp trong thư mục

Nếu bạn muốn tất cả các tên thư mục bao gồm cả những tên trùng lặp, bạn có thể sử dụng mã bên dưới

import os

for root, dirs, files in os.walk["."]:
    for dirname in dirs:
        print[dirname]

Bạn có thể thấy kết quả bên dưới và tôi cũng khuyên bạn nên chú ý đến các giá trị trùng lặp

Tên thư mục trong tập tin gốc

Với việc liệt kê các tệp trong một thư mục, bạn có thể sử dụng các quy trình hàng loạt liên quan đến “Hình ảnh” bằng các phương pháp và hướng dẫn bên dưới

  • Cách tối ưu hóa hình ảnh hàng loạt với Python
  • Cách thay đổi kích thước hình ảnh hàng loạt bằng Python

Làm cách nào để liệt kê một số loại tệp nhất định trong thư mục Python?

Để chỉ liệt kê các tệp có phần mở rộng nhất định [một số loại tệp nhất định], nên sử dụng Mô-đun Python “fnmatch” với Mô-đun Python “os”. Mô-đun Python “fnmatch” có thể được sử dụng để chỉ định các mẫu trong chuỗi, mẫu chuỗi đã xác định được sử dụng để lọc các tệp theo loại của chúng. Ngoài ra, “os. listdir[]” có thể được sử dụng để tạo danh sách chứa tên tệp trong thư mục hiện tại. Để tạo Bạn có thể xem một ví dụ để liệt kê tất cả các tệp có “fnmatch. fnmatch[]” và “os. listdir[]” chức năng

import os, fnmatch

filesOfDirectory = os.listdir['.']
pattern = "*.*"
for file in filesOfDirectory:
    if fnmatch.fnmatch[file, pattern]:
            print[file]
  • Chúng tôi đã nhập các mô-đun “os” và “fnmatch”
  • Chúng tôi đã tạo một biến là “filesOfDirectory” chứa tất cả các tên tệp của thư mục hiện tại với “os. listdir[]”. Ngoài ra, chúng tôi đang sử dụng “. ” để chỉ định đường dẫn hiện tại
  • Chúng tôi đã xác định một "mẫu biểu thức chính quy" là "*. *”. Nó có nghĩa là mẫu bao gồm mọi chữ cái trước và sau “. ”
  • Chúng tôi đã tạo một vòng lặp for cho mọi phần tử của biến “filesOfDirectory” của chúng tôi
  • Chúng tôi đã tạo một “câu lệnh if” với sự trợ giúp của “fnmatch. hàm fnmatch[]”. Phải mất hai đối số, một là mẫu mà chúng tôi đã tạo và đối số còn lại là các tệp trong danh sách của chúng tôi được tạo bởi “os. hàm listdir[]”
  • Chúng tôi đang in các tập tin

Bạn có thể thấy kết quả bên dưới

Bạn có thể thấy kết quả của danh sách thư mục của chúng tôi cho vòng lặp

Bây giờ, với cùng một phương pháp, hãy chỉ gọi các tệp có phần mở rộng “. tiện ích mở rộng jl

import os, fnmatch

fileOfDirectory = os.listdir['.']
pattern = "*.jl*"
for filename in fileOfDirectory:
    if fnmatch.fnmatch[filename, pattern]:
            print[filename]

Chúng tôi đã thay đổi mẫu của mình thành “*. jl*”. Có nghĩa là chỉ mang những file có đuôi là “. jl”. Ngoài ra, dấu “*” cuối cùng không phải là trở ngại ở đây, tôi để nó ở đó chỉ để hiển thị logic của “mẫu và khớp trong biểu thức chính quy”. Nó có nghĩa là “fnmatch. hàm fnmatch[]” sẽ chỉ trả về các tên tệp kết thúc bằng “. tiện ích mở rộng jl. Bạn có thể thấy kết quả bên dưới

Liệt kê các tệp trong một thư mục có điều kiện

Nếu chúng tôi chỉ muốn liệt kê “. ipynb”, chúng tôi có thể sử dụng mẫu bên dưới

import os, fnmatch

fileOfDirectory = os.listdir['.']
pattern = "*.ipynb"
for filename in fileOfDirectory:
    if fnmatch.fnmatch[filename, pattern]:
            print[filename]

Bạn có thể thấy kết quả bên dưới

Liệt kê các tệp trong một thư mục với một điều kiện nhất định và mẫu biểu thức chính quy

Chúng tôi có bốn tệp kết thúc bằng “. ipynb”

Làm cách nào để lọc và liệt kê các tệp theo tên của chúng trong Python?

Để lọc và liệt kê các tệp theo tên của chúng, chúng ta cần sử dụng “fnmatch. fnmatch[]” và “os. listdir[]” với các mẫu regex lọc tên. Bạn có thể tìm thấy một ví dụ về lọc và liệt kê các tệp theo tên của chúng trong Python

import os, fnmatch

fileOfDirectory = os.listdir['.']
pattern = "*seo*.*"
for filename in fileOfDirectory:
    if fnmatch.fnmatch[filename, pattern]:
            print[filename]

Trong ví dụ này, chúng tôi gọi bất kỳ tệp nào có từ “seo” trong đó bằng “. ”. Điều đó có nghĩa là mang bất kỳ tệp nào bao gồm "seo" trong tên từ bất kỳ loại tiện ích mở rộng nào. Bạn có thể thấy kết quả bên dưới

Liệt kê và lọc các tệp trong một thư mục theo tên của chúng

Cách sử dụng Trình tạo Python để liệt kê các tệp trong một thư mục bằng Python

Trình tạo là các trình vòng lặp trong Python, thay vì trả về một đầu ra, chúng ta có thể đưa ra kết quả bằng một hàm tùy chỉnh và sau đó, lặp lại từng phần tử kết quả một. Chúng ta cũng cần sử dụng “os. đường dẫn. isfile[]” để lọc các tệp từ các thư mục hoặc thư mục. Bạn có thể thấy một ví dụ dưới đây

________số 8
  • Chúng ta đã bắt đầu định nghĩa một hàm với đối số là “đường dẫn”
  • Chúng tôi đã sử dụng vòng lặp for để tạo danh sách cho đường dẫn đã chỉ định thông qua “os. listdir[]”
  • Chúng tôi đã kiểm tra xem các thành phần trong đường dẫn đã chỉ định có phải là tệp hay không thông qua “os. đường dẫn. hàm isfile[]”
  • “hệ điều hành. đường dẫn. join” đang được sử dụng để nối tên tệp và chuỗi đường dẫn làm đối số cho “os. đường dẫn. isfile[]”
  • Chúng tôi đã mang lại tất cả các tên tệp
  • Đối với đường dẫn hiện tại, chúng tôi đã in tất cả các tên tệp

Bạn có thể thấy kết quả bên dưới

Sử dụng trình tạo Python để liệt kê tệp

Liệt kê các tệp trong một thư mục với “os. scandir[]” Hàm trong OS Python Module

Cuối cùng, chúng ta có thể sử dụng “os. scandir[]” giúp mọi thứ dễ dàng hơn một chút sau Python 3. 6 phát hành. “hệ điều hành. scandir[]” quét tất cả các tệp và thành phần trong một thư mục bao gồm các thư mục con và thu thập chúng trong bộ nhớ cho nhà phát triển. Chúng tôi sẽ sử dụng “os. getwcd[]” để xác định đường dẫn là “thư mục làm việc hiện tại” và chúng ta sẽ lọc các tệp bằng phương thức “is_file[]” của “os python module”. Bạn có thể thấy khối mã bên dưới

import os

path = os.getcwd[]

with os.scandir[path] as fileNames:
    for file in fileNames:
        if file.is_file[]:
            print[file.name]

Bạn có thể thấy kết quả của mã ở trên, bên dưới

Liệt kê tên tệp với “os. scandir” dễ dàng hơn. “Nếu” os. scandir[path]” có nghĩa là một điều kiện if chẳng hạn như nếu đường dẫn được cung cấp chính xác

Cách liệt kê các tệp trong một thư mục với Mô-đun Pathlib Python

Pathlib là một Mô-đun Python đang được sử dụng để quản lý hệ thống tệp. Mô-đun Pathlib Python có các đường dẫn cụ thể và thuần túy để thao tác với các đường dẫn của tệp. Để liệt kê tất cả các tệp trong một thư mục qua Pathlib, chúng ta có thể sử dụng “pathlib. Hàm Path[]” và hàm “iterdir[]” cùng nhau. Bạn có thể xem một ví dụ về cách sử dụng danh sách tệp với mô-đun python pathlib

import os

dirnames = set[dirname]
for root, dirs, files in os.walk["."]:
    for dirname in dirs:
        dirnames.add[dirname]

print[dirnames]
0
  • Chúng tôi đã nhập pathlib
  • Chúng tôi đã tạo một biến có tên là “currentDirectory”. Chúng tôi đã gán nó cho “pathlib. Đường dẫn['. ']" hàm số. “. ” có nghĩa là thư mục hiện tại một lần nữa
  • Trong ví dụ về “os. listdir[]”, chúng ta đang tạo một danh sách chứa tất cả các tệp, trong ví dụ này, chúng ta cần sử dụng hàm “iterdir[]” cho “pathlib. Ví dụ về đường dẫn
  • Chúng tôi đã bắt đầu một vòng lặp cho mọi tệp trong đường dẫn của biến “currentDirectory” bằng cách lặp qua các phần tử của nó
  • Chúng tôi đã in mọi phần tử được lặp lại

Bạn có thể xem danh sách các tệp trong thư mục hiện tại

Liệt kê các tệp trong một thư mục với Mô-đun Python “Pathlib”

Cách lọc và liệt kê các tệp theo tên của chúng thông qua mô-đun Pathlib Python

Để lọc và liệt kê các tệp theo tên của chúng với Mô-đun Pathlib Python, chúng ta cần sử dụng hàm “glob []”. Chức năng “glob[]” đang được sử dụng để xác định các mẫu để lọc các tệp theo tên hoặc phần mở rộng của chúng. Bạn có thể thấy một ví dụ dưới đây

import os

dirnames = set[dirname]
for root, dirs, files in os.walk["."]:
    for dirname in dirs:
        dirnames.add[dirname]

print[dirnames]
1

Chúng tôi đã xác định một mẫu là “*. ipynb” để chúng tôi chỉ có thể gọi những tệp đó. Chúng tôi đã sử dụng “pathlib. glob[]” để lọc các tệp trong thư mục hiện tại. Bạn có thể thấy kết quả bên dưới

Liệt kê các tệp có điều kiện qua Pathlib Python Module

Để lọc và liệt kê các tệp theo tên của chúng, bạn có thể thay đổi biến “currentPattern” và nội dung biểu thức chính quy của nó như đã được thực hiện trong danh sách tệp này với nguyên tắc python trước đây

Những suy nghĩ cuối cùng về việc liệt kê các tệp trong một thư mục bằng Python và các trường hợp sử dụng cho SEO và nhà phát triển

Liệt kê các tệp trong một thư mục với Python là một kỹ năng quan trọng. Trong một dự án, cho dù đó là Dự án SEO hay Dự án dành cho nhà phát triển, việc liệt kê các tệp trong một thư mục có thể giúp mọi người xem các loại tệp khác nhau, lọc các tệp đó theo phần mở rộng hoặc tên của chúng để chỉ những tệp cần thiết mới có thể được sử dụng cho . Chẳng hạn, có thể tối ưu hóa hình ảnh từ một trang web mà không thay đổi bất kỳ URL hình ảnh nào nhờ liệt kê và lọc các tệp theo tên của chúng trong thư mục gốc. Do đó, không cần thay đổi URL của hình ảnh, chúng có thể được tối ưu hóa và nhóm nhà phát triển chỉ cần thay đổi tệp trong máy chủ. Tối ưu hóa hàng loạt hình ảnh bằng Python là một chủ đề khác nhưng không liệt kê các tệp theo phần mở rộng của chúng, nó sẽ không tạo ra kết quả hiệu quả như vậy. Liệt kê các tệp theo tên và phần mở rộng của chúng trong một thư mục bằng Python cũng có thể hữu ích cho các dự án quét web và khoa học dữ liệu, có thể hợp nhất, di chuyển, sao chép các tệp này bằng cách liệt kê chúng

Trong tương lai, chúng tôi cũng sẽ tập trung vào việc di chuyển, sao chép và hợp nhất hoặc chia tệp bằng Python. Ngoài ra, tính năng lọc tệp theo ngày tháng và kích thước của chúng sẽ được thêm vào danh sách các tệp của chúng tôi trong tương lai trong một thư mục có hướng dẫn Python trong tương lai

  • Tác giả
  • Bài viết gần đây

Koray Tuğberk GÜBÜR

Chủ sở hữu và Người sáng lập tại SEO toàn diện & Kỹ thuật số

Koray Tuğberk GÜBÜR là Giám đốc điều hành và Người sáng lập của Holistic SEO & Digital, nơi ông cung cấp các dịch vụ Tư vấn SEO, Phát triển Web, Khoa học Dữ liệu, Thiết kế Web và Tối ưu hóa Công cụ Tìm kiếm với vai trò lãnh đạo chiến lược cho các Dự án Khách hàng SEO của cơ quan. Koray Tuğberk GÜBÜR thường xuyên thực hiện Kiểm tra SEO A/B để hiểu Google, Microsoft Bing và Yandex cũng như thuật toán của các công cụ tìm kiếm và chương trình nghị sự nội bộ. Koray sử dụng Khoa học dữ liệu để hiểu các đường cong nhấp chuột tùy chỉnh và cây quyết định của thuật toán công cụ tìm kiếm nhỏ. Tuğberk đã sử dụng nhiều trang web để viết các Case Study SEO khác nhau. Ông đã xuất bản hơn 10 Nghiên cứu điển hình về SEO với hơn 20 trang web để giải thích về các công cụ tìm kiếm. Koray Tuğberk bắt đầu Sự nghiệp SEO của mình vào năm 2015 trong ngành sòng bạc và chuyển sang ngành SEO mũ trắng. Koray đã làm việc với hơn 300 công ty cho các Dự án SEO của họ kể từ năm 2015. Koray đã sử dụng SEO để cải thiện trải nghiệm người dùng và tỷ lệ chuyển đổi cùng với nhận thức về thương hiệu của các doanh nghiệp trực tuyến từ các ngành dọc khác nhau như bán lẻ, thương mại điện tử, liên kết và trang web b2b hoặc b2c. Anh ấy thích kiểm tra các trang web, thuật toán và công cụ tìm kiếm

Chủ Đề