Wil je je Python-vaardigheid verbeteren? Dan kun je proberen om wat taken op je computer uit te voeren met Python. Het kopiëren en plakken van bestanden van de ene map naar de andere met Python is een leuke manier om dit te doen.
Het is niet alleen leuk, maar laat je ook snel bestanden lezen en schrijven zonder afgeleid te worden van je code. Als Python nieuw voor je is, is het een vaardigheid die je misschien nog op de een of andere manier moet leren. Laten we dus via dit bericht kijken hoe we bestanden met Python kunnen kopiëren.
Vereisten voor het kopiëren van bestanden met Python
Er zijn veel manieren om bestanden met Python te kopiëren en te plakken. De vereiste hiervoor varieert dus en is afhankelijk van de methode die u besluit te gebruiken.
Hoewel je misschien geen extra modules nodig hebt om bestanden met Python te kopiëren, kun je desgewenst nog steeds ingebouwde bibliotheken gebruiken.
Als u bijvoorbeeld de os methode, moet u deze in uw code importeren. Een van de populaire manieren om bestanden met Python te kopiëren, is echter het gebruik van de
shutil bibliotheek.Laten we eens kijken hoe we deze verschillende methoden kunnen gebruiken om bestanden met Python te kopiëren.
Bestanden kopiëren met de ingebouwde Shutil-bibliotheek van Python
De shutil module is een ingebouwde en krachtige Python-bibliotheek voor het snel lezen en schrijven van bestanden in Python.
Om het te gebruiken, hoeft u alleen het volledige pad van de bron- en doelbestanden op te geven.
In essentie, shutil neemt dit formaat aan:
shutil.copy ([pad naar de bronmap], [pad naar de bestemmingsmap], follow_symlinks = Waar)
De onderstaande code gebruikt bijvoorbeeld shutil.copy () om een bestand met de naam copy.txt uit een map met de naam mijn map in een andere met de naam bestemming. Het hernoemt vervolgens het bestemmingsbestand als newFile.txt:
importeer shutil
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Merk op dat u uw code kunt schrijven in elke code-editor naar keuze. U kunt het vervolgens uitvoeren met behulp van de opdrachtregel.
U kunt echter ook de standaard Python Integrated Development Environment (IDLE) gebruiken als u niet bekend bent met het uitvoeren van Python via de opdrachtregel.
Verwant: Command Prompt (CMD) -opdrachten die u moet kennen
De shutil.copy methode kopieert de metadata van het bronbestand niet. In wezen ziet uw machine het bestemmingsbestand volledig als een nieuw en geeft het nieuwe metagegevens.
Om de metagegevens samen met het originele bestand te kopiëren, gebruikt u de shutil.copy2 methode:
importeer shutil
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)
De bovenstaande methode behoudt de originele metadata van het oude bestand in het doelbestand. Het doelbestand behoudt bijvoorbeeld de datum waarop u het bronbestand heeft gemaakt, de grootte en andere kenmerken.
De follow_symlinks argument is een symbolische link-declaratie die laat shutil volg een absoluut pad. Daarom moet u het opnemen als de bron- en doelbestanden zich in verschillende mappen bevinden.
Maar als beide bestanden in uw huidige werkmap staan, hoeft u geen follow_symlinks. Als je dat doet, genereert Python een syntaxisuitzondering.
Dus als u het bronbestand in uw huidige werkmap plakt, zou uw code er als volgt uit moeten zien:
importeer shutil
shutil.copy2 (bronbestand, bestemmingsbestand)
Naast het gebruik van de bovenstaande shutil-methoden, kunt u ook gebruiken shutil.copyfile of shutil.copyfileobj.
Gebruik makend van shutil.copyfileobj is een beetje anders omdat het de ingebouwde vereist Open functie. Vervolgens moet u binair lezen en schrijven door de extensie "rb" en "wb" argumenten.
Laten we eens kijken hoe de shutil.copyfileobj methode werkt met dezelfde mappen die we eerder gebruikten:
importeer shutil
sourceFilePath = open ("C: /Users/some_directories/my_folder/copy.txt", "rb")
bestemmingFilePath = open ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)
Let daar op shutil.copyfileobj () vereist niet de follow_symlinks argument.
Echter, shutil.copyfile () werkt op dezelfde manier .kopiëren en .kopie2 doet. Ze verschillen slechts onbeduidend in hun interne functies.
Om de shutil.copyfile () methode:
importeer shutil
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Bestanden kopiëren met de os-module
De os module gebruikt twee ingebouwde methoden om bestanden te kopiëren; os.system () en os.popen () methoden.
De os.system () methode kunt u de opdrachtregelomgeving nabootsen.
Een tekortkoming van os-methoden is echter dat ze alleen bestanden kopiëren binnen uw huidige werkmap.
Om de os.system () methode op Windows:
import os
os.system ('kopieer source.txt bestemming.txt)
U kunt ook de ingebouwde xcopy Windows-terminalopdracht:
import os
os.system ('xcopy source.txt bestemming.txt)
Om de os.system methode op Linux, vervang kopiëren met cp:
import os
os.system ('cp source.txt bestemming.txt)
Bestanden kopiëren met de os.popen-methode
Om deze methode te gebruiken, vervangt u os.system () met os.popen ().
Gebruik in Windows:
import os
os.popen ('kopieer source.txt bestemming.txt)
Zoals we deden met os.system (), vervangen kopiëren met cp om deze methode op Linux te gebruiken:
import os
os.popen ('cp source.txt bestemming.txt)
Bestanden kopiëren met de subprocesmodule van Python
Naast de bovenstaande methoden kunt u ook de subproces bibliotheek om bestanden in Python te kopiëren:
importeer subproces als sp
sp.call ("kopieer sourceFile destinationFile", shell = True)
Gebruik onder Linux echter:
importeer subproces als sp
sp.call ("cp sourceFile destinationFile", shell = True)
De subproces bibliotheek gebruikt ook subproces.check_out () methode. Het werkt op dezelfde manier subprocess.call () doet:
importeer subproces als sp
sp.check_out ("kopieer sourceFile destinationFile", shell = True)
Vervang op Linux kopiëren met cp:
importeer subproces als sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)
Net als de os-methoden werken subprocesmethoden echter alleen met bestanden in uw huidige werkdirectory.
Notitie: U kunt ook bestanden naar een map kopiëren als deze zich in dezelfde werkmap bevindt als het bronbestand. Het enige dat u hoeft te doen, is de bestandsnaam van de bestemming vervangen door de naam van de bestemmingsmap. Zorg er echter voor dat de doelmap en het bronbestand zich in uw huidige werkmap bevinden.
Hoe bestanden in Python te kopiëren zonder bibliotheken te gebruiken
U kunt ook bestanden in Python kopiëren zonder afhankelijk te zijn van een bibliotheek. Net als bij de shutil-methode heb je alleen de volledige paden van de bron- en bestemmingsmappen nodig.
Hier leest u hoe u dit kunt bereiken:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
met open (sourcePath, "rb") zoals gelezen:
met open (destinationPath, "wb") als mijnbestand:
mijnbestand.write (read.read ())
Naar maak de code herbruikbaar, je kunt het wijzigen in een functie:
def copyFile (bron = geen, bestemming = geen):
indien niet (bron en bestemming) == Geen:
met open (bron, "rb") zoals gelezen:
met open (bestemming, "wb") als mijnbestand:
mijnbestand.write (read.read ())
anders:
print ("Geef de bron- en bestemmingspaden op")
copyFile (sourcePath, destinationPath)
Dat is het. U hebt zojuist een herbruikbare bestandskopieerapparaat gemaakt met Python zonder een bibliotheek te gebruiken.
Blijf taken automatiseren met Python
Naast het helpen om gefocust te blijven op uw code tijdens het bouwen van projecten, geeft het kopiëren van bestanden met Python u een beter begrip van bestandsbeheer met Python. Spelen met Python-taken is echter een manier om je Python-vaardigheid te verbeteren, vooral als je een beginner bent.
U kunt bijvoorbeeld de datum en tijd op uw pc wijzigen met de os-module. Je kunt zelfs aangepaste bash-opdrachten schrijven met Python als je wilt.
Wilt u uw eigen Python-opdrachtregelprogramma's maken, maar vindt u het te moeilijk? Gebruik Click, een handige Python-tool om uw code te stroomlijnen.
- Programmeren
- Python

Idowu is gepassioneerd door alles wat met slimme technologie en productiviteit te maken heeft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij houdt er ook van om af en toe de routine te doorbreken. Zijn passie om mensen de weg te wijzen in moderne technologie, motiveert hem om meer te schrijven.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Nog een stap…!
Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.