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

Kopieer bestand in Python:shutil.copy(), shutil.copystat() methode

Python kopieerbestandsmethoden

Python biedt ingebouwde functies voor het eenvoudig kopiëren van bestanden met behulp van de hulpprogramma's van het besturingssysteem Shell.

De volgende opdracht wordt gebruikt om bestand te kopiëren

shutil.copy(src,dst)

De volgende opdracht wordt gebruikt om een ​​bestand met metagegevensinformatie te kopiëren

shutil.copystat(src,dst)

Een bestand kopiëren in Python

Hier zijn de stappen om een ​​bestand in Python te kopiëren met behulp van de Shutil copy() methode:

Stap 1) Leg het originele pad vast in de huidige map
Voordat we een bestand kopiëren, moeten we het pad naar het originele bestand in de huidige map ophalen. In de code –

  1. Variabele declareren
  2. Splitsfunctie toepassen op variabele

Code Uitleg

  • Eerst gaan we controleren of ons bestand "guru99.txt" bestaat of niet. Omdat we het guru99.txt-bestand eerder hebben gemaakt, weten we dat het bestaat, en we gaan verder met de code
  • We slaan het bestandspad op in de variabele "src ” als uw bestand bestaat
  • Zodra we het pad hebben gevonden, gaan we het pad en de bestandsnaam scheiden
  • Daarvoor gebruiken we de splitsing path.split functie op bronvariabele
  • Code wanneer uitgevoerd, drukt "bestandsnaam . af ” en “bestandspad ” afzonderlijk

Stap 2) Maak een kopie van ons bestaande bestand met de Shutil-module
We gebruiken de Shutil-module om een ​​kopie van het bestaande bestand te maken. Hier maakten we vroeger een kopie van ons bestaande bestand 'guru99.txt'.

Code Uitleg

  • Neem de originele bestandsnaam “guru99.txt” en voeg letters .bak toe aan het einde “guru99.txt.bak”. Deze naam met de extensie .bak wordt onze dubbele kopie
  • En dan gaan we de kopieerfunctie van het hulpprogramma gebruiken om van de bron naar de bestemming te kopiëren
  • Wanneer u de code uitvoert, ziet u een duplicaatbestand met de extensie .bak aan de rechterkant van het paneel

Stap 3) Kopieer metagegevens die aan het bestand zijn gekoppeld, bestandsrechten en andere informatie
De kopieerfunctie kopieert alleen de inhoud van het bestand, maar geen andere informatie. metagegevens kopiëren gekoppeld aan het bestand, bestandsrechten en andere informatie die u moet gebruiken "copystat ” functie. Voordat we deze code uitvoeren, moeten we ons kopieerbestand "guru99.text.bak" verwijderen.

Nadat je het bestand hebt verwijderd en het programma hebt uitgevoerd, wordt er een kopie van je .txt-bestand gemaakt, maar deze keer met alle informatie zoals bestandsrechten, wijzigingstijd en metagegevensinformatie . Je kunt naar je OS-shell gaan om de informatie te verifiëren.

Hier is de code

import os
import shutil
from os import path

def main():
    # make a duplicate of an existing file
	if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    
	#seperate the path from the filter
	head, tail = path.split(src)
	print("path:" +head)
	print("file:" +tail)
	
	#let's make a backup copy by appending "bak" to the name
	dst = src+".bak"
	# nowuse the shell to make a copy of the file
	shutil.copy(src, dst)
	
	#copy over the permissions,modification
	shutil.copystat(src,dst)
	
if __name__=="__main__":
	main()

Stap 4) De informatie ophalen
U kunt de informatie over het laatst gewijzigde tekstbestand ophalen

  • Coderegel#15- Het vertelt de dag, datum, maand, jaar en tijd wanneer het .txt-bestand (guru99) voor het laatst is gewijzigd. We gebruiken de padmodule om de details van de bestandswijzigingstijd te krijgen, en dan gaan we de time classes c time-functie gebruiken om dat om te zetten in een leesbare tijd. Dus als we de code uitvoeren, kunnen we zien dat het bestand guru99.txt voor het laatst is gewijzigd op Ma, 8 Jan th om 13:35 2018.
  • Coderegel#17- Het doet hetzelfde door informatie te geven over bestandswijzigingen, maar het heeft een ander formaat om het weer te geven. Hier gebruiken we de functie Aanpassingstijd ophalen (path.getmtime(“guru99.txt”)). In plaats van de c time-functie te gebruiken gaan we nu de From Time Stamp-functie . gebruiken en een datum-tijdobject gaan construeren. In de uitvoer kunt u zien dat de details van de bestandswijzigingstijd worden afgedrukt in een ander formaat 2018-01-08, 13:35:51.334072

Hier is de code

#
# Example file for working with o.s path module


import os
from os import path
import datetime
from datetime import date, time, timedelta
import time

def main():


    # Get the modification time
    t = time.ctime(path.getmtime("guru99.txt.bak"))
    print(t)
    print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))


if __name__ == "__main__":
    main()

Samenvatting

  • Gebruik de code shutil.copy (src,dst) om een ​​kopie van het bestaande bestand te maken
  • Om alle informatie van het originele bestand te kopiëren naar een dubbel bestand, zoals bestandsrechten, wijzigingstijd of metagegevensinformatie door gebruik code shutil.copystat(src,dst)

Python

  1. Python-gegevenstypen
  2. Python-operators
  3. Python pass-instructie
  4. Python-functieargumenten
  5. Python-woordenboek
  6. Python-bestand I/O
  7. Python-tekenreekslengte | len() methode Voorbeeld
  8. Methode Python String find() met voorbeelden
  9. Python controleren of bestand bestaat | Hoe te controleren of er een directory bestaat in Python
  10. Python JSON:coderen (dumps), decoderen (laden) &JSON-bestand lezen
  11. Python - Bestanden I/O