Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Senaraikan semua fail jenis tertentu dalam direktori menggunakan Python

Senaraikan semua fail jenis tertentu dalam direktori menggunakan Python

WBOY
WBOYke hadapan
2023-08-28 23:25:12961semak imbas

Senaraikan semua fail jenis tertentu dalam direktori menggunakan Python

Ciri fleksibel Python dan perpustakaan berkuasa menjadikan memanipulasi fail dan direktori menjadi mudah. Python membantu anda menjana, mengemas kini dan mendapatkan semula data daripada fail dan folder. Keperluan biasa ialah penyenaraian direktori semua fail daripada jenis tertentu. Tutorial ini membimbing anda melalui proses menggunakan contoh kehidupan sebenar untuk menunjukkan kecekapan Python dalam operasi sistem fail.

Pengenalan kepada perpustakaan Os dan Glob Python

Pustaka Python standard mempunyai banyak modul yang boleh mengurus operasi sistem fail. Modul os dan glob ialah dua contoh modul yang terkenal.

  • modul os - Modul os Python menyediakan alatan untuk berkomunikasi dengan sistem pengendalian. Ia menyediakan operasi untuk menambah, memadam dan menyemak imbas direktori, yang sangat berguna untuk operasi fail dan direktori.

  • modul globSatu lagi alat berguna ialah modul glob, yang menggunakan peraturan shell Unix untuk mencari semua nama laluan yang sepadan dengan corak tertentu. Memandangkan ia menyokong aksara kad bebas seperti * dan ?, ia sesuai untuk matlamat kami.

Mari kita gali contoh untuk lebih memahami penggunaannya.

Contoh 1: Menggunakan modul Os dan Fnmatch

Di sini, kami akan menggunakan modul os dan fnmatch dalam Python untuk menyenaraikan setiap fail .txt yang terdapat dalam direktori.

import os
import fnmatch

def list_files(directory, filetype):
   for file in os.listdir(directory):
      if fnmatch.fnmatch(file, filetype):
         print(file)

list_files('/home/user/documents', '*.txt')

Fungsi os.listdir() dalam coretan kod ini memaparkan senarai setiap fail dan direktori dalam direktori yang ditentukan. Fungsi fnmatch() modul fnmatch kemudiannya menentukan sama ada setiap fail sepadan dengan corak jenis fail yang ditentukan. Jika jenis fail sepadan, cetak nama fail.

Contoh 2: Menggunakan modul Glob

Sekarang mari kita gunakan modul glob untuk menyenaraikan setiap fail imej .jpg yang terdapat dalam direktori.

import glob

def list_files(directory, filetype):
   for file in glob.glob(f"{directory}/{filetype}"):
      print(file)

list_files('/home/user/images', '*.jpg')

Fungsi glob.glob() digunakan dalam contoh ini untuk mengembalikan senarai laluan yang sepadan dengan corak nama laluan. Laluan direktori dan jenis fail digabungkan dalam rentetan f. Fungsi itu kemudian mencetak fail .jpg dalam direktori.

Contoh 3: Carian rekursif menggunakan modul Glob

Menggunakan modul glob, kami juga boleh mencari secara rekursif jenis fail tertentu dalam direktori dan subdirektorinya. Sebagai contoh, mari kita cari fail imej all.png.

import glob

def list_files(directory, filetype):
   for file in glob.glob(f"{directory}/**/{filetype}", recursive=True):
      print(file)

list_files('/home/user/images', '*.png')

Rentetan ** dalam laluan coretan ini mengarahkan glob untuk melakukan carian rekursif dalam semua folder dan subdirektori. Fungsi rekursif didayakan dengan pilihan rekursif=True.

Contoh 4: Senaraikan semua fail Python

Anda boleh menggunakan modul os dan fnmatch untuk mencari dan menyenaraikan setiap fail Python.py dalam direktori tertentu dengan -

import os
import fnmatch

def list_files(directory, filetype):
   for file in os.listdir(directory):
      if fnmatch.fnmatch(file, filetype):
         print(file)

list_files('/home/user/my_python_projects', '*.py')

Ini akan menyenaraikan nama semua fail .py dalam direktori.

Contoh 5: Carian rekursif menggunakan Os.walk

Selain itu, kita boleh menggunakan os.walk() untuk melakukan carian rekursif. Fungsi ini merentasi pepohon direktori sama ada atas ke bawah atau bawah ke atas untuk mencipta nama fail.

import os
import fnmatch

def list_files(directory, filetype):
   for dirpath, dirnames, files in os.walk(directory):
      for file in files:
         if fnmatch.fnmatch(file, filetype):
            print(os.path.join(dirpath, file))

list_files('/home/user/projects', '*.txt')

Gunakan fungsi os.walk() dalam skrip ini untuk menjalankan pepohon direktori. Gunakan fungsi fnmatch.fnmatch() untuk membandingkan setiap fail dengan jenis fail yang diingini dan gunakan os.path.join() untuk mendapatkan laluan penuh fail yang sepadan.

Kesimpulan

Banyak senario pengekodan memerlukan penyenaraian semua fail jenis tertentu dalam direktori, dan koleksi modul Python yang banyak (seperti os dan glob) menyediakan cara mudah untuk mencapainya. Banyak contoh praktikal yang disediakan dalam artikel ini menjadikannya sangat jelas cara menggunakan modul ini untuk menyenaraikan fail dalam direktori dan melakukan carian rekursif dalam direktori dan mana-mana subdirektori.

Dapat bekerja dengan fail dan direktori dalam kotak alat pengaturcaraan adalah penting. Ciri-ciri ini mudah untuk mengatur fail projek, melihat fail log, dan juga mengautomasikan fungsi sistem. Teruskan meneroka rutin ini untuk mengetahui lebih banyak keupayaan pengurusan sistem fail Python yang berkuasa.

Atas ialah kandungan terperinci Senaraikan semua fail jenis tertentu dalam direktori menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam