Bestanden kopiëren in Python met shutil.copy() en shutil.copystat()
Python Bestanden Kopiëren Basis
Python's shutil module biedt eenvoudige functies voor het kopiëren van bestanden en het behouden van metadata. De twee primaire hulpmiddelen zijn shutil.copy() en shutil.copystat().
copy(src, dst)
Kopieert het bestand op src naar de bestemming dst. De bestandsinhoud wordt gedupliceerd, maar bestandsrechten en timestamps worden niet bewaard.
copystat(src, dst)
Kopieert bestandsmetadata – inclusief rechten, timestamps en andere OS-specifieke attributen – van src naar dst. Moet worden aangeroepen na een succesvolle copy() om de volledige bestandsstatus te repliceren.
Stap-voor-stap Voorbeeld
- Bronbestand lokaliseren
Bevestig datguru99.txtbestaat in de huidige werkdirectory en haal het absolute pad op.

import os
from os import path
src_path = path.realpath("guru99.txt")
print("Bron:", src_path)
- Een back-upnaam maken
Voeg.baktoe aan de originele bestandsnaam om het bestemmingspad te vormen.
dst_path = src_path + ".bak"
print("Bestemming:", dst_path)
- De bestandsinhoud kopiëren
Gebruikshutil.copy()om de bestandsdata te dupliceren.
import shutil shutil.copy(src_path, dst_path)
- De metadata kopiëren
Na de inhoudskopie, repliceer de originele bestandsrechten en timestamps.
shutil.copystat(src_path, dst_path)
- De kopie verifiëren
Gebruikos.path.getmtime()om de laatst-gewijzigde tijd van het back-upbestand weer te geven.
import datetime
mod_time = path.getmtime(dst_path)
print("Laatst gewijzigd:", datetime.datetime.fromtimestamp(mod_time))
Het uitvoeren van het script creëert guru99.txt.bak in dezelfde directory, compleet met dezelfde rechten en timestamps als het origineel.
Praktische tips
- Voer altijd
shutil.copy()uit vóórshutil.copystat()– de laatste vereist een bestaand bestemmingsbestand. - Bij werken over verschillende bestandssystemen, wees je bewust dat niet alle metadata-attributen ondersteund worden;
copystat()kopieert alleen wat de OS blootstelt. - Voor recursieve directory-kopieering, overweeg
shutil.copytree()ofshutil.copy2(), watcopy()encopystat()in één stap combineert.
Samenvatting
- Gebruik
shutil.copy(src, dst)om bestandsinhoud te dupliceren. - Gebruik
shutil.copystat(src, dst)om rechten, timestamps en andere metadata te dupliceren.
Python
- Python Datatypes onder de knie krijgen: Een praktische gids
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Python Pass Statement onder de knie krijgen: Een praktische gids
- Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
- Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
- Python-bestands-I/O: bestandsbewerkingen, lezen, schrijven en beheer beheersen
- Python len(): Praktische handleiding voor het meten van objectlengtes
- Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
- Bestands- en directory-bestaat controleren in Python – Een praktische gids
- Python JSON: Encoding, Decoding en Bestandsafhandeling – Een Praktische Gids
- Python Bestands I/O: In- en uitvoerbewerkingen onder de knie krijgen