Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

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

  1. Bronbestand lokaliseren
    Bevestig dat guru99.txt bestaat in de huidige werkdirectory en haal het absolute pad op.

Bestanden kopiëren in Python met shutil.copy() en shutil.copystat()

import os
from os import path
src_path = path.realpath("guru99.txt")
print("Bron:", src_path)
  1. Een back-upnaam maken
    Voeg .bak toe aan de originele bestandsnaam om het bestemmingspad te vormen.
dst_path = src_path + ".bak"
print("Bestemming:", dst_path)
  1. De bestandsinhoud kopiëren
    Gebruik shutil.copy() om de bestandsdata te dupliceren.
import shutil
shutil.copy(src_path, dst_path)
  1. De metadata kopiëren
    Na de inhoudskopie, repliceer de originele bestandsrechten en timestamps.
shutil.copystat(src_path, dst_path)
  1. De kopie verifiëren
    Gebruik os.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óór shutil.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() of shutil.copy2(), wat copy() en copystat() 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

  1. Python Datatypes onder de knie krijgen: Een praktische gids
  2. Python Operators onder de knie krijgen: Een uitgebreide gids
  3. Python Pass Statement onder de knie krijgen: Een praktische gids
  4. Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
  5. Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
  6. Python-bestands-I/O: bestandsbewerkingen, lezen, schrijven en beheer beheersen
  7. Python len(): Praktische handleiding voor het meten van objectlengtes
  8. Python's String.find()-methode beheersen: Syntaxis, voorbeelden & alternatieven
  9. Bestands- en directory-bestaat controleren in Python – Een praktische gids
  10. Python JSON: Encoding, Decoding en Bestandsafhandeling – Een Praktische Gids
  11. Python Bestands I/O: In- en uitvoerbewerkingen onder de knie krijgen