Python OS.Gangeksempel

Python OS.Gangeksempel

Walk -funksjonen i et hvilket som helst operativsystem er som OS.sti. Gangefunksjonen genererer filnavnene i et katalogtre ved å navigere i treet i begge retninger, enten en ovenfra og ned eller en bottom-up tverrgående. Hver katalog i et hvilket som helst tre i et system har en basekatalog på ryggen. Og så fungerer det som en underkatalog. Walk () genererer utdataene i tre tuples, banen, katalogen og filene som kommer i en hvilken som helst underkatalog.

  • Dirpath: Det er en streng som leder filene eller en mappe mot banen til katalogen.
  • Dirnames: Alle underkatalogene som ikke inneholder '.'Og' ... '.
  • Filnavn: Katalogstien som inneholder andre filer enn katalogfiler. Det er en liste over mapper eller filer som kan være systemopprettede eller brukeropprettede filer.

Navnene som er til stede på listen inneholder ikke noen komponent i banen. For å hente hele banen som starter fra toppen til en katalog eller fil i katalogstien, bruker vi OS.gå.Bli med () som har argumenter fra DirPath og katalognavnet.

Top-down og bottom-up er de to valgfrie argumentene om gangen. Dette betyr at enten et av alternativene skal brukes i funksjonen hvis vi ønsker en sekvens av kataloger. Mens i noen tilfeller er den ovenfra og ned-sekvensen valgt som standard hvis vi ikke nevner noe argument angående denne sekvensen. Hvis argumentet top-down er sant, vises trippel for hovedkatalogen først og deretter underkatalogen senere. Og hvis ovenfra og ned er falsk, vises trippel for katalogen etter det for underkatalogene. Med andre ord, sekvensen er på en bottom-up måte.

Når den ovenfra og ned-situasjonen er sann, kan brukeren oppdatere katalognavnlisten, og deretter vil Walk () bare bli brukt på underkatalogene. Mens oppdatering av navnene på kataloger når ovenfra-ned er usant er ikke anvendelig. Dette er fordi, i bottom-up-modus, katalogenavnene i katalogene vises før katalogstien. ListDir () -funksjon kan eliminere feilene som standard.

Python OS.Walk () Working

La oss se hvordan filsystemet er krysset i Python. Det fungerer som et tre som har en enkelt rot som videre deler seg inn i grener. Og grenene utvides som undergrener og så videre. Denne gangfunksjonen sender ut navnene på filer i et katalogtre ved å navigere i treet enten fra toppen eller fra bunnen.

Syntaks av OS.gå()

# OS.walk (topp [, topdown = true [onError = none [FollowLinks = falsk]]])

topp = Det er hodet eller et utgangspunkt for ethvert underkatalogtravers. Det gir 3 tuples, som vi har beskrevet i starten av artikkelen.

Topdown = I tilfelle når det er sant, er skanning av kataloger fra topp til slutten og omvendt i motsatt sak.

Oneroor = Dette er en spesiell funksjon som er designet for å overvåke feilen. Det kan enten vise en feil å fortsette med turen eller øke unntaket for å avskjedige turen.

Følg lenker = Fører til ustoppelige rekursjoner; det er satt til sant.

Merk: Followlinks Alternativet er satt som sant; Det fører til ustoppelige rekursjoner hvis noen lenke peker på egenkatalogen. Walk () -funksjonen tar ikke posten over katalogene som den allerede har krysset.

Eksempel 1

Alle filene i katalogen skal oppføres ved å bruke denne funksjonen. Vurder et kodebit. Det første trinnet er å importere OS -modulen, som andre funksjoner som skal importeres av Python -biblioteket.

# Import OS

Etter det vil vi definere en funksjon som heter 'OS -modul'. Inne i denne funksjonen, bruk en for loop for å få alle filene etter katalogene og roten. Top-down-teknikken brukes her. Og “Followlinks”Holdes sant.

Importer OS
# OS -modulen gir en funksjon som får en liste over filer eller mapper
# I en katalog
# '.'Betegner den gjeldende mappen
# walk (…) -metode genererer filnavnene i et katalogtre ved å gå
# tre enten topp-down eller bottom-up
def os_module ():
for rot, dirs, filer i OS.gå('.', Topdown = False, OneRror = Ingen, FollowLinks = True):
For filnavn i filer:
trykk (filnavn)
def main ():
skriv ut ('\ n ... Bruke OS -modulen til å liste opp filene ... \ n')
OS_MODULE ()
if __name__ == '__main__':
hoved()

Denne modulen vil bare skrive ut filnavnene i katalogen. '.'Full stopp vi brukte her er spesielt for den gjeldende mappen. I hovedprogrammet vil vi ringe funksjonen erklært.

I utgangen kan du se filnavnene i gjeldende mappe.

Eksempel 2

Denne funksjonen vil returnere verdien ved å skanne alle katalogene og underkatalogene i den nåværende banen til katalogen fra bunnen til opp retning, som top-down = falsk her.

OS.gå(".”, Topdown = falsk) #!/usr/bin/python
Importer OS
for rot, dirs, filer i OS.gå(".", Topdown = falsk):
For navn i filer:
trykk (OS.sti.Bli med (rot, navn))
For navn i Dirs:
trykk (OS.sti.Bli med (rot, navn))

A for loop brukes til å skrive ut filene og katalogene separat. “OS.sti.bli med”Bringer navnet og hovedkatalogen fra banen.

En liten del av utgangen er vist ovenfor. Hvis man ønsker å få utdataene i topp til ned-rekkefølge, bør modulen til top-down holdes som sann.

# OS.gå(".”, Topdown = True)

Eksempel 3

Dette eksemplet skiller seg fra de tidligere i typen parametere som brukes. Her tar funksjonen bare 'banen'. A for loop brukes til å vise verdiene til filer, kataloger for banen. If-uttalelse brukes til å begrense den resulterende verdien i hver linje om gangen. Her har vi brukt 4. Etter hvert 4 ord vil verdien bli forskjøvet mot neste linje. Startverdien til "i" -variabelen er tatt som null.

Importer OS
Path = "C: \\ brukere"
i = 0
for (sti, dirs, filer) i OS.walk (sti):
trykk (bane)
trykk (Dirs)
trykk (filer)
skrive ut("----")
i += 1
Hvis jeg> = 4:
gå i stykker

Den respektive utgangen er vist nedenfor. Banen, katalogene og filene vises som utdata.

Eksempel 4

Som Walk () -metoden i OS, kan vi også bruke “OS.ListDir ()Alternativ til banen, som vil vise alle verdiene av den aktuelle verdien. Jeg.e., Her har vi brukt filer som skal skrives ut. Banen blir tatt som et argument for funksjonen. Den resulterende verdien vil bli lagret i variabelen for filer. For Loop vil vise alle filene i den respektive katalogen.

# Filer = OS.listdir (bane) import OS
sti = '/brukere/bruker/.Spyder-py3 '
Filer = OS.ListDir (sti)
for f i filer:
trykk (f)

Listen vises her som inneholder alle filene i den respektive katalogen.

Eksempel 5

Du har sett eksemplene der alle mapper eller stier vises, også de vi vil skjule; De er også utsatt. Men “OS.walk () ”bruker noen funksjoner som tillater å ekskludere de skjulte katalogene.

Etter å ha importert OS -modulen, har vi introdusert banen som vi vil bruke i eksemplet.

# Dirs.[:] = [D for D i Dirs. Hvis ikke d.begynner med('.')] import OS
bane = 'c:/brukere/bruker/.Spyder-py3 '
for rot, dirs, filer i OS.walk (sti):
trykk (rot)
dirs [:] = [d for d i dirs hvis ikke d.begynner med('-')]
for dir i dirs:
trykk (OS.sti.Bli med (root, dir))
for fil i filer:
trykk (OS.sti.Bli med (rot, fil))

Denne funksjonen er i stand til å skjule katalogene, nå med denne listen, er de skjulte katalogene ikke inkludert i utdataene.

Eksempel 6

Anta at du har en liste over navn på katalogen som du vil forsømme under turen () -funksjonen. En måte er å bruke metoden som beskrevet ovenfor. Den andre veien kommer til å bli forklart her. Dette vil gi samme resultat.

# Dirs.[:] = [] import OS
bane = 'c:/brukere/bruker/.Spyder-py3 '
for rot, dirs, filer i OS.walk (sti):
Hvis rot i ignorere_list:
Dirs [:] = []
filer [:] = []
trykk (Dirs [:])

Eksempel 7

Hvis du vil ta utskriften av de absolutte verdiene, navnene på underkataloger og katalogene, men ikke hele veien, brukes i dette tilfellet Python Walk -funksjonen.

Importer OS
x = r'c:/brukere/bruker/.Spyder-py3 '
for r, d, f i os.Walk (x):
trykk (d)

Fra utgangen kan du se at de resulterende verdiene har blitt begrenset.

Konklusjon

Funksjonen 'Python OS Walk' brukes til å krysse alle stiene i en katalog, fra topp til bunn eller fra bunnen til toppen. Vi har også sett hvordan vi kan skjule uønskede data som skal forhåndsvises. Sikkert denne artikkelen vil være en hjelpende kant for å implementere turfunksjonen til OS -modulen i Python.