Kuinka luetella tiedostot hakemistossa Python-ohjelmalla?

tässä opetusohjelmassa, me kattaa kaiken mitä sinun tarvitsee tietää siitä, miten luetella tiedostot hakemistoon käyttäen Python.

Python on yleiskäyttöinen kieli, jota käytetään eri aloilla, kuten Data Science, Kone Oppiminen, ja jopa Web-Kehitys. Pythonin kielen soveltamisessa ei näytä olevan mitään rajoituksia.

siksi vaikuttaa varsin triviaalilta Pythonilta, jota voidaan käyttää tiedostojen ja hakemistojen luettelointiin missä tahansa järjestelmässä., Tämän artikkelin tarkoituksena on valaista lukijaa tavoista listata tiedostoja Pythonia käyttävässä järjestelmässä.

Listan Kaikki Tiedostot Hakemistoon Käyttäen Python

Varten vuorovaikutuksessa hakemistoja järjestelmässä, käyttäen Python, os library on käytetty.

1. Käyttämällä ” os ” – kirjastoa

metodia, jolla aiomme käyttää motiiviamme, on listdir (). Kuten nimestä voi päätellä, sitä käytetään luetteloimaan kohteita hakemistoissa.,

# Importing the os libraryimport os# The path for listing itemspath = '.'# The list of itemsfiles = os.listdir(path)# Loop to print each filename separatelyfor filename in files:print(filename)

tuloksena on:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

Linux-käyttäjät voivat helposti sovittaa edellä ulostulo käyttäen standardi ls komento terminaalin.

Lista Kohteita käyttäen ’ls’ – komento

Kuten näemme lähdöt kunkin menetelmän otteluissa.

2., Käyttämällä ’heppu’ – kirjastoon

glob on enimmäkseen filename pattern matching kirjasto, mutta sitä voidaan käyttää luetella kohteita nykyisen hakemiston mukaan:

Lähtö:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

jokerimerkkiä '*' käytetään vastaamaan kaikki kohteet hakemistossa. Koska haluamme näyttää nykyisen hakemiston kohteet, meidän on kytkettävä pois glob() – funktion rekursiivinen luonne.

3., Listaa tiedostot nykyisessä hakemistossa

edellä menetelmiä, python-koodi oli palaamassa kaikki kohteet nykyiseen kansioon riippumatta niiden luonteesta. Voimme poimia vain tiedostot käyttäen path.isfile() – funktiota os – kirjaston sisällä.

tuloksena on:

game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

edellä koodinpätkä, Luettelo Ymmärtäminen on tapana suodattaa vain ne kohteet, jotka ovat todella tiedostoon.,

Toinen tärkeä asia huomata tässä on, että, edellä koodi ei toimi muita hakemistoja, kuten muuttuja 'f' ei ole absoluuttinen polku, mutta polku suhteessa nykyiseen hakemistoon.

Luettele kaikki hakemiston tiedostot rekursiivisesti

tulostaaksemme tiedostot hakemiston ja sen alihakemistojen sisällä, meidän on kuljettava niitä rekursiivisesti.

1. Käyttämällä ’os’ – kirjastoon

avulla walk() menetelmä, voimme kulkea jokainen alihakemisto hakemistoon yksitellen.,

tuloksena on:

os.walk() menetelmä yksinkertaisesti seuraa kunkin alihakemiston ja kopioi tiedostot ylhäältä-alas tavalla oletusarvoisesti. On olemassa kolme iteraattorit käytetään läpi lähtö os.walk() toiminto:

  • path – Tämä muuttuja sisältää nykyisen hakemiston toiminto on tarkkailemalla aikana tietyn iteraation
  • folders – Tämä muuttuja on luettelo hakemistoja sisälle 'path' hakemisto.,
  • files – luettelo tiedostot sisälle 'path' hakemisto.

join() menetelmää käytetään liität tiedoston nimi ja sen emoyhtiön hakemiston, joka tarjoaa meille suhteellinen polku tiedostoon.

2. Käyttämällä ’heppu’ – kirjastoon

Samanlainen kuin edellä menettely, glob voi rekursiivisesti käydä jokaisen hakemistoon ja pura kaikki tuotteet ja palauttaa ne.,

tuloksena on:

'**' symbolia käytetään yhdessä path-muuttuja kertoo glob() toiminto vastaa tiedostot missä tahansa alihakemistoon. kertoo funktion sopivan yhteen kaikkien hakemistossa olevien kohteiden kanssa.

Koska haluamme pura vain ne tiedostot, täydellinen hakemisto, me suodattaa tiedostoja isfile() – toimintoa käytetään, ennen kuin.

listaa kaikki hakemiston sisällä olevat alikansiot

tiedostojen listaamisen sijaan, voimme listata kaikki tietyssä hakemistossa olevat alikansiot.,

tuloksena on:

./Documents/Journaldev

pieni ero listaus tiedostoja ja hakemistoja on valikoima iteraattori prosessin aikana os.walk() toiminto. Tiedostojen osalta toistamme tiedostomuuttujan. Tässä, kierrämme kansiomuuttujan.

Listan Tiedostot Hakemistoon, jossa Absoluuttinen Polku

– Kun me tiedämme, miten luetella tiedostot hakemistoon, sitten näyttää absoluuttinen polku on pala kakkua. abspath() – menetelmä antaa meille tiedoston absoluuttisen polun.,

tuloksena on:

Yksi asia huomata tässä on, että abspath() on annettava suhteellinen tiedoston polku ja se on tarkoitus join() toiminto.

Listan Tiedostot Hakemistoon Sovittamalla Mallit,

On olemassa useita tapoja suodattaa pois tiedostonimet sopivat erityisesti kuvio. Käydään jokainen niistä läpi yksi kerrallaan.

1. Käyttämällä ’fnmatch’ – kirjastoon

Kuten nimestä voi päätellä, fnmatch on filename pattern matching kirjasto., Käyttämällä fnmatch meidän standardi tiedostonimi talteen kirjastot, voimme suodattaa pois ne tiedostot, jotka vastaavat tiettyä kaavaa.

tuloksena on:

List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py

fnmatch() toiminto vaatii kaksi parametrit, tiedostonimi, jonka jälkeen malli voidaan sovittaa. Yllä olevassa koodissa tarkastelemme kaikkia tiedostoja, jotka sisältävät sanan file niissä.

2. Käyttämällä ’heppu’ – kirjastoon

Kuten edellä mainittiin, glob's ensisijainen tarkoitus on filename pattern matching.,

tuloksena on:

./Documents/list_files1.py

edellä pattern matching regular expression '**/**.*' voidaan selittää seuraavasti:

3. Käyttämällä ’pathlib’ – kirjastoon

pathlib seuraa olio-tapa vuorovaikutuksessa tiedostojärjestelmän. rglob() toiminto sisällä kirjasto voidaan käyttää rekursiivisesti pura tiedostojen luettelo läpi tietty Polku kohde.

nämä tiedostot voidaan suodattaa käyttämällä rglob() – funktion kuviota.,

tuloksena on:

Documents/my_program.cppDocuments/Journaldev/mastermind.py

edellä koodinpätkä on tapana listata kaikki tiedostot, jotka alkavat kirjaimella 'm'.

Listatiedostot hakemistossa, jossa on tietynlainen laajennus

Listatiedostot, joissa on tietty laajennus Pythonissa, muistuttavat jonkin verran kuviosovituksia. Tätä tarkoitusta varten meidän täytyy luoda malli koskien tiedostotunnistetta.

tuloksena on:

fnmatch() toiminto suodattaa pois ne tiedostot, päättyen '.py', joka on python-tiedostoja., Jos haluamme purkaa tiedostoja eri laajennuksilla, meidän on muutettava tätä koodin osaa. Esimerkiksi vain C++ – tiedostoja noudettaessa on käytettävä '.cpp'.

tämä kiteyttää Pythonia käyttävän hakemiston tiedostoluettelon noutotavat.

johtopäätös

on olemassa useita tapoja ratkaista mikä tahansa ongelma käsillä, eikä kätevin ole aina vastaus. Tämän artikkelin osalta Python-ohjelmoijan on oltava tietoinen kaikista tavoista, joilla voimme luetella tiedostoja hakemistossa.

Share

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *