Odvisnost Pythona od zunanjih datotek je ključni vidik, pred izvedbo katere koli kode je pametno paziti na osnovne/izvorne datoteke. Preden zaženete določen program, se morate prepričati, da izvorne datoteke obstajajo na določenem mestu.
Vsak razvijalec razume potrebo po ustvarjanju nadomestnih kod, ki lahko prihranijo neuspeh programa v primeru, da pogoj ni izpolnjen. V Pythonu obstaja več načinov preverjanja, ali datoteka obstaja; tukaj so najboljše metode, o katerih morate vedeti.
1. Poskusite in razen izjav
The try in except stavek preveri ukaz in ustvari izhod. V spodnji kodi je poskusite stavek bo poskušal odpreti datoteko (testfile.txt). Če Pythonov procesor lahko poišče datoteko, bo datoteko odprl in natisnil rezultat Datoteka je odprta in na voljo za uporabo.
poskusi:
f = odprto ('testfile.txt')
print ("Datoteka je na voljo za uporabo")
f.close ()
razen IOError:
print ('Datoteka ni dostopna')
Če pride do napake, bo rezultat natisnil Datoteka ni dostopna. Ko je celotna koda sestavljena in izvedena, bo zaprla odprto datoteko, če je bila odprta.
Odvisnost Pythona od zunanjih datotek je ključni vidik, zato morate pred izvajanjem kode paziti na osnovne/izvorne datoteke.
Preden zaženete določen program, se prepričajte, da izvorne datoteke obstajajo na določeni lokaciji.
2. Os.path.isfile (pot)
Python ima vgrajen modul OS, ki ga lahko pokličete za interakcijo z osnovnimi datotekami, mapami in imeniki. Pythonove os.path.isfile () method lahko uporabite za preverjanje imenika in če obstaja določena datoteka.
Prvi korak je uvoz vgrajene funkcije z uporabo uvoz os.path knjižnica. Naslednji ukaz preveri, ali datoteka obstaja na določeni lokaciji.
uvoz os.path
os.path.isfile (r "C: \ Users \ Wini Bhalla \ Desktop \ Python test file.txt")
Izhod se vrne Prav, saj datoteka obstaja na določeni lokaciji. Če datoteka ne obstaja, se bo Python vrnil Napačno.
3. Os.path.exists (pot)
Iz podobnih razlogov je uvoz os knjižnico lahko uporabite za preverjanje, ali imenik obstaja v vašem sistemu.
Sintaksa je precej preprosta:
Uvozi os.path
os.path.exists (r "C: \ Users \ Wini Bhalla \ Desktop \ test")
Tako kot prejšnji korak, če se imenik/mapa nahaja na podani sistemski poti, se vrne Python Pravin kasneje, Napačno, če imenika/mape ni mogoče najti.
Povezano: Se učite Pythona? Tukaj je opisano, kako kopirati datoteko
4. Os. Pot. Isdir (pot)
Tako kot os.path.isfile in os.path.exists (), os.path.isdir () je podfunkcija knjižnice os. Edina razlika je v tem, da ta ukaz deluje samo za imenike. Kot je bilo pričakovano, uporaba te skladnje vrne logično vrednost glede na obstoj imenikov.
Na primer:
uvoz os
os.path.isdir (r "C: \ Users \ Wini Bhalla \ Desktop \ OS")
Izhod je Prav, ker mapa/imenik obstaja na podani poti.
uvoz os
os.path.isdir (r "C: \ Users \ Wini Bhalla \ Desktop \ testdirectory")
Izhod je Napačno, ker mapa/imenik ne obstaja na podani poti.
5. Pathlib.path.exists ()
Python 3.4 in novejše različice ponujajo Pathlib modul, ki ga lahko uvozite s pomočjo uvoz funkcijo. Pathlib na enem mestu zajame potrebne funkcionalnosti in z različnimi metodami omogoči uporabo s predmetom poti.
Če želite uporabiti Pathlib:
import pathlib
file = pathlib. Pot (r "C: \ Users \ Wini Bhalla \ Desktop \ Python test file.txt")
če file.exists ():
print ("Datoteka obstaja")
drugače:
print ("Datoteka ne obstaja")
Glede na obstoj datoteke bo izhod prikazal, ali datoteka obstaja na podani poti ali ne. V idealnem primeru je koda v tiskanje izjavo lahko spremenite glede na zahteve vašega programa
6. Os.listdir (pot)
The listdir metoda v Pythonu vrne seznam vseh datotek v določenem imeniku, kot ga določi uporabnik. Vendar ta metoda ne bo vrnila datotek, ki obstajajo v podmapah.
The listdir metoda sprejema le en parameter, pot do datoteke. V idealnem primeru bodo poti do datotek in map, ki jih želite pridobiti.
Osnovna skladnja vključuje:
os.listdir (pot)
V spodnjem primeru lahko ustvarite zanko za pregled vseh datotek, navedenih v imeniku, in nato preverite obstoj podane datoteke, prijavljene z če izjavo.
uvoz os
path = r'C: \ Users \ Wini Bhalla \ Desktop '
datoteke = os.listdir (pot)
tiskanje (datoteke)
Ta koda bo natisnila seznam datotek, ki so na voljo v trenutnem imeniku.
uvoz os
pot = r'C: \ Users \ Wini Bhalla \ Desktop 'datoteke = os.listdir (pot)
za f v datotekah:
če je f == "test.txt":
print ("Datoteka obstaja")
drugače:
print ("Datoteka ne obstaja")
Nadalje, ko se zanka izvaja, se listdir funkcijo skupaj z če logika stavka bo krožila po seznamu datotek in natisnila rezultate, odvisno od pogojev, ki so bili sprejeti v datoteki tiskanje izjavo.
Povezano: Uporabite zanke s seznami v Pythonu
7. Modul Glob
The glob modul ujema vsa imena poti z določenimi parametri in vam na kratko omogoča dostop do datotečnega sistema. Ker se glob uporablja za ujemanje vzorcev, lahko z njim preverite stanje datoteke.
Obstajata dve sklici poti:
- Absolutna pot: To uporabite, če želite poiskati datoteko v drugem imeniku.
- Relativna pot: Uporabite to, ko želite poiskati datoteko v trenutnem imeniku.
Če je datoteka najdena, se koda vrne Prav, sicer se vrne Napačno.
Primer uporabe Globa:
uvoz glob
if glob.glob (r "C: \ Users \ Wini Bhalla \ Desktop \ test.txt"):
print ("Datoteka obstaja")
drugače:
print ("Datoteka ne obstaja")
Izhod iz te kode bo natisnil rezultat, če je datoteka najdena.
8. Podproces
Ukaz test v podprocesnem modulu je učinkovit način za preverjanje obstoja datotek in imenikov. Ukazi za testiranje delujejo samo v strojih, ki temeljijo na Unixu, in ne v operacijskih sistemih z operacijskim sistemom Windows.
Glede na vaše potrebe lahko uporabite naslednje ukaze:
- test -e: Preverite obstoj poti
- test -f: Preverite obstoj datoteke
- test-d: Preverite obstoj mape
Preverjanje poti s podprocesom:
iz zagona uvoza podprocesa
run (['test', '-e', 'testfile.txt']). returncode == 0
run (['test', '-e', 'im-not-here.txt']). returncode == 0
Ta koda se imenuje testna funkcija, ki ji sledi '-e' preveriti obstoj poti. Funkcija prikazuje Napačno za neveljavno pot.
Preverjanje datoteke s podprocesom:
run (['test', '-f', 'testfile.txt']). returncode == 0
run (['test', '-f', 'testdirectory']). returncode == 0
The '-f' funkcija preveri obstoj datoteke in se vrne Napačno za imenik.
Preverjanje imenika s podprocesom:
run (['test', '-d', 'testfile.txt']). returncode == 0
run (['test', '-d', 'testdirectory']). returncode == 0
The '-d' funkcija preveri obstoj imenika in se vrne Napačno za katero koli datotečno poizvedbo v ukazu test.
Kateri ukaz boste uporabili za iskanje datotek?
Python je sorazmerno enostaven za uporabo in končnim uporabnikom ponuja veliko možnosti. Za preverjanje obstoja datotek lahko uporabite katerega koli od zgoraj navedenih postopkov.
Če pa ste začetnik, se vedno lahko naučite Pythona. Ker je Python obsežen jezik, je najbolje, da si vzamete nekaj časa za razumevanje različnih odtenkov in obsega ukazov.
Python je izjemno vsestranski, z aplikacijami od spletnega razvoja do analize podatkov.
Preberite Naprej
- Programiranje
- Python
- Nasveti za kodiranje
Wini je pisatelj iz Delhija, ki ima 2 leti pisnih izkušenj. V času pisanja je bila povezana z agencijami za digitalno trženje in tehničnimi podjetji. Napisala je vsebino v zvezi s programskimi jeziki, tehnologijo v oblaku, AWS, strojnim učenjem in še veliko več. V prostem času rada slika, preživi čas z družino in potuje v hribe, kadar koli je to mogoče.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!
Kliknite tukaj, če se želite naročiti