shutil voor bestandsbewerkingen
Kopieer, verplaats en archiveer bestanden
shutil voor bestandsbewerkingen is een gratis Python Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.
Wat is shutil?
De module shutil (shellhulpprogramma's) biedt hoogwaardige bestandsbewerkingen: bestanden kopiëren en verplaatsen, mappenstructuren verwijderen en archieven maken. De module bouwt voort op os voor alledaagse taken.
import shutil, os
os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/a.txt', 'w') as f:
f.write('hello')
print('created a.txt')Een bestand kopiëren
shutil.copy(src, dst) kopieert de inhoud en machtigingsbits van een bestand naar een nieuwe locatie.
import shutil, os
os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/src.txt', 'w') as f:
f.write('data')
shutil.copy('/tmp/shutil_demo/src.txt', '/tmp/shutil_demo/copy.txt')
print(os.path.exists('/tmp/shutil_demo/copy.txt'))copy versus copy2
shutil.copy2 werkt net als copy, maar behoudt ook metagegevens zoals tijdstempels. Gebruik dit wanneer wijzigingstijden belangrijk zijn.
import shutil, os
os.makedirs('/tmp/shutil_demo', exist_ok=True)
with open('/tmp/shutil_demo/m.txt', 'w') as f:
f.write('x')
shutil.copy2('/tmp/shutil_demo/m.txt', '/tmp/shutil_demo/m2.txt')
print('copied with metadata')Een volledige mappenstructuur kopiëren
shutil.copytree(src, dst) kopieert recursief een volledige map. De doelmap mag nog niet bestaan, tenzij je dirs_exist_ok=True meegeeft.
import shutil, os
os.makedirs('/tmp/tree_src/sub', exist_ok=True)
with open('/tmp/tree_src/sub/f.txt', 'w') as f:
f.write('hi')
shutil.rmtree('/tmp/tree_dst', ignore_errors=True)
shutil.copytree('/tmp/tree_src', '/tmp/tree_dst')
print(os.path.exists('/tmp/tree_dst/sub/f.txt'))Bestanden en mappen verplaatsen
shutil.move(src, dst) verplaatst of hernoemt een bestand of map. Dit werkt tussen bestandssystemen wanneer os.rename zou mislukken.
import shutil, os
os.makedirs('/tmp/move_demo', exist_ok=True)
with open('/tmp/move_demo/old.txt', 'w') as f:
f.write('move me')
shutil.move('/tmp/move_demo/old.txt', '/tmp/move_demo/new.txt')
print(os.path.exists('/tmp/move_demo/new.txt'))Een mappenstructuur verwijderen
shutil.rmtree(path) verwijdert een map en alles wat erin staat. Gebruik dit voorzichtig: er is geen manier om de bewerking ongedaan te maken.
import shutil, os
os.makedirs('/tmp/to_delete/inner', exist_ok=True)
shutil.rmtree('/tmp/to_delete')
print('exists after rmtree:', os.path.exists('/tmp/to_delete'))ignore_errors en veiligheid
Als je ignore_errors=True aan rmtree meegeeft, voorkom je een crash wanneer het pad ontbreekt. Dat is handig voor opruimwerk voordat je een nieuwe uitvoering start.
import shutil
shutil.rmtree('/tmp/never_existed', ignore_errors=True)
print('no error even though path was absent')Een archief maken
shutil.make_archive(base_name, format, root_dir) verpakt een map in één aanroep in een zip- of tarbestand.
import shutil, os
os.makedirs('/tmp/arch_src', exist_ok=True)
with open('/tmp/arch_src/data.txt', 'w') as f:
f.write('archive me')
path = shutil.make_archive('/tmp/my_archive', 'zip', '/tmp/arch_src')
print('created', os.path.basename(path))Een archief uitpakken
shutil.unpack_archive(filename, extract_dir) draait het proces om en pakt een zip- of tarbestand uit naar een map.
import shutil, os
shutil.make_archive('/tmp/box', 'zip', '/tmp/arch_src')
shutil.unpack_archive('/tmp/box.zip', '/tmp/unpacked')
print(os.listdir('/tmp/unpacked'))Uitvoerbare bestanden vinden
shutil.which(name) zoekt een programma in het systeempad PATH, net als de shellopdracht which. De functie retourneert het volledige pad of None.
import shutil
print(shutil.which('python3'))
print(shutil.which('definitely_not_a_real_program'))Schijfgebruik
shutil.disk_usage(path) rapporteert het totale, gebruikte en vrije aantal bytes voor het bestandssysteem dat het pad bevat.
import shutil
usage = shutil.disk_usage('/')
print('total GB:', round(usage.total / 1e9, 1))
print('free GB:', round(usage.free / 1e9, 1))Korte controle
Test je begrip van shutil.
Samenvatting
Je hebt shutil voor bestandsbewerkingen geleerd:
copy/copy2kopiëren bestanden;copytreekopieert volledige mappenstructuren.movehernoemt of verplaatst;rmtreeverwijdert mappenstructuren.make_archive/unpack_archiveverwerken zip- en tarbestanden.whichendisk_usagevragen informatie over het systeem op.
Volgende cursus: opdrachtregelprogramma's bouwen met argparse.
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 76
- Lessen
- 320
Veelgestelde vragen
Is de les “shutil voor bestandsbewerkingen” gratis?
Ja — de volledige tekst van “shutil voor bestandsbewerkingen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.
Wat leer ik in “shutil voor bestandsbewerkingen”?
Kopieer, verplaats en archiveer bestanden Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Python Academy te beginnen?
Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “shutil voor bestandsbewerkingen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Python Academy?
Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Opdrachten uitvoeren met subprocess
- Uitvoer vastleggen
- Omgeving en de os-module
- shutil voor bestandsbewerkingen