Globbing og iterasjon
Finn filer med glob-mønstre
Globbing og iterasjon er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.
Finne filer
pathlib gjør det enkelt å liste innholdet i mapper og søke etter filer som samsvarer med et mønster. De viktigste metodene er iterdir, glob og rglob.
Sette opp et eksempel på en mappestruktur
For å utforske disse metodene bygger vi først en liten mappe med filer. Dette oppsettet bruker bare standardbiblioteket.
from pathlib import Path
root = Path('sample')
root.mkdir(exist_ok=True)
(root / 'a.txt').write_text('1')
(root / 'b.txt').write_text('2')
(root / 'c.log').write_text('3')
print('created files')iterdir lister innhold
iterdir() gir hvert element direkte i en mappe, ett Path-objekt per element.
from pathlib import Path
root = Path('sample')
for entry in sorted(root.iterdir()):
print(entry.name)glob med et mønster
glob() finner elementer som samsvarer med et shell-mønster. Jokertegnet * samsvarer med en vilkårlig sekvens av tegn.
from pathlib import Path
root = Path('sample')
for txt in sorted(root.glob('*.txt')):
print(txt.name)Jokertegn for ett tegn
Jokertegnet ? samsvarer med nøyaktig ett tegn og er nyttig for navn med fast lengde.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('?.txt')):
print(m.name)Tegnintervaller
Hakeparenteser samsvarer med ett hvilket som helst tegn fra et sett eller et intervall, på samme måte som i shell-globbing.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('[ab].txt')):
print(m.name)Rekursiv glob med rglob
rglob() søker i en mappe og alle undermappene. Det tilsvarer glob('**/pattern').
from pathlib import Path
root = Path('sample')
(root / 'nested').mkdir(exist_ok=True)
(root / 'nested' / 'deep.txt').write_text('x')
for m in sorted(root.rglob('*.txt')):
print(m)Telle treff
Resultatene fra glob er iteratorer. Pakk en av dem inn i list() for å telle eller bruke treffene på nytt.
from pathlib import Path
root = Path('sample')
txts = list(root.rglob('*.txt'))
print('found', len(txts), 'text files')Filtrere under iterering
Kombiner globbing med kontrollene is_file eller is_dir for å filtrere resultatene nøyaktig.
from pathlib import Path
root = Path('sample')
files = [p for p in root.iterdir() if p.is_file()]
for f in sorted(files):
print(f.name)Behandle filer som er funnet
Når De har treffene, kan De lese hver fil. Her summerer vi innholdet i alle tekstfilene i mappestrukturen.
from pathlib import Path
root = Path('sample')
total = 0
for p in root.rglob('*.txt'):
text = p.read_text().strip()
if text.isdigit():
total += int(text)
print('total:', total)Sortere glob-resultater
Glob garanterer ikke en bestemt rekkefølge. Pakk resultatene inn i sorted() når De trenger et forutsigbart resultat, for eksempel når De lager en rapport.
from pathlib import Path
root = Path('sample')
for p in sorted(root.glob('*'), key=lambda x: x.name):
print(p.name)Rask kontroll
Hva er forskjellen mellom glob og rglob?
Oppsummering
De har lært å finne filer med glob-mønstre.
iterdirlister direkte innhold.globfinner treff for et mønster (*,?,[...]).rglobsøker rekursivt.- Kombiner globbing med filtrering ved hjelp av
is_file/is_dir, og les treffene.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 76
- Leksjoner
- 320
Ofte stilte spørsmål
Er leksjonen «Globbing og iterasjon» gratis?
Ja – hele teksten i «Globbing og iterasjon» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Globbing og iterasjon»?
Finn filer med glob-mønstre Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Python Academy?
Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Globbing og iterasjon»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?
Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Path-objektet
- Lese og skrive filer
- Globbing og iterasjon
- Manipulering av stier