Python leren? Hier leest u hoe u een bestand kopieert

Python leren? Hier leest u hoe u een bestand kopieert

Wil je je Python-vaardigheid verbeteren? Dan kun je proberen een aantal 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 oppikken. Laten we dus via dit bericht eens kijken hoe we bestanden met Python kunnen kopiëren.





Vereisten voor het kopiëren van bestanden met Python

Er zijn veel manieren om bestanden te kopiëren en te plakken met Python. De vereiste om het te doen varieert dus en hangt af 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 jij methode, moet u het in uw code importeren. Een van de populaire manieren om bestanden te kopiëren met Python 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.

hoe zoom op laptop te installeren

In essentie, Shutil neemt dit formaat:





shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

De onderstaande code gebruikt bijvoorbeeld shutil.copy () om een ​​bestand met de naam te kopiëren copy.txt uit een map met de naam mijn map in een andere genaamd bestemming . Vervolgens hernoemt het het doelbestand als nieuwBestand.txt :

import 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 in elke code-editor naar keuze kunt schrijven. U kunt het vervolgens uitvoeren via 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: Opdrachtprompt (CMD)-opdrachten die u moet kennen

De shutil.copy methode kopieert de metadata van het bronbestand niet. In wezen ziet uw machine het doelbestand als een geheel nieuw bestand en geeft het nieuwe metadata.

Om de metadata samen met het originele bestand te kopiëren, gebruikt u echter de shutil.copy2 methode:

import shutil
shutil.copy2(sourceFile, destinationFile, follow_symlinks=True)

De bovenstaande methode bewaart de originele metadata van het oude bestand in het doelbestand. Het doelbestand behoudt bijvoorbeeld de datum waarop u het bronbestand hebt gemaakt, de grootte en andere kenmerken.

De volg_symlinks argument is een symbolische linkdeclaratie 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 werkdirectory staan, hoeft u geen volg_symlinks . Als je dat doet, roept Python een syntaxisuitzondering op.

hoe miracast te gebruiken op xbox one

Dus als je het bronbestand in je huidige werkmap plakt, zou je code er als volgt uit moeten zien:

import shutil
shutil.copy2(sourceFile, destinationFile)

Naast het gebruik van de bovenstaande Shutil-methoden, kunt u ook: shutil.copyfile of shutil.copyfileobj .

Gebruik makend van shutil.copyfileobj is een beetje anders omdat het de ingebouwde open functie. Vervolgens moet u binair lezen en schrijven door de 'rb' en 'wb' argumenten.

Laten we eens kijken hoe de shutil.copyfileobj methode werkt met dezelfde mappen die we eerder gebruikten:

import shutil
sourceFilePath = open('C:/Users/some_directories/my_folder/copy.txt', 'rb')
destinationFilePath = open('C:/Users/some_directories/destination/newFile.txt', 'wb')
shutil.copyfileobj(sourceFilePath, destinationFilePath)

Let daar op shutil.copyfileobj () vereist niet de volg_symlinks argument.

Echter, shutil.copyfile () werkt ongeveer hetzelfde .kopiëren en .copy2 doet. Ze verschillen slechts onbeduidend in hun interne functies.

Om de . te gebruiken shutil.copyfile () methode:

import 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 jij module gebruikt twee ingebouwde methoden om bestanden te kopiëren; os.systeem() en os.popen () methoden.

De os.systeem() methode stelt u in staat om de opdrachtregelomgeving te imiteren.

Een tekortkoming van os-methoden is echter dat ze alleen bestanden kopiëren binnen uw huidige werkmap.

Om de . te gebruiken os.systeem() methode op Windows:

import os
os.system('copy source.txt destination.txt)

U kunt ook de ingebouwde xcopy Windows-terminalopdracht:

import os
os.system('xcopy source.txt destination.txt)

Om de . te gebruiken os.systeem methode op Linux, vervang kopiëren met cp :

import os
os.system('cp source.txt destination.txt)

Bestanden kopiëren met de os.popen-methode

Om deze methode te gebruiken, vervangt u os.systeem() met os.popen () .

Gebruik in Windows:

import os
os.popen('copy source.txt destination.txt)

Zoals we deden met os.systeem() , vervangen kopiëren met cp om deze methode op Linux te gebruiken:

import os
os.popen('cp source.txt destination.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:

import subprocess as sp
sp.call('copy sourceFile destinationFile', shell=True)

Gebruik op Linux echter:

import subprocess as sp
sp.call('cp sourceFile destinationFile', shell=True)

De subproces bibliotheek gebruikt ook subproces.check_out() methode. Het werkt op dezelfde manier subproces.call () doet:

import subprocess as sp
sp.check_out('copy sourceFile destinationFile', shell=True)

Vervang onder Linux kopiëren met cp :

import subprocess as sp
sp.check_out('cp sourceFile destinationFIle', shell=True)

Echter, net als de os-methoden, werken subprocesmethoden alleen met bestanden in uw huidige werkmap.

Opmerking: U kunt ook bestanden naar een map kopiëren als deze zich in dezelfde werkmap als het bronbestand bevindt. Het enige wat u hoeft te doen is de naam van het doelbestand te vervangen door de naam van de doelmap. Zorg er echter voor dat de doelmap en het bronbestand zich in uw huidige werkmap bevinden.

Bestanden kopiëren in Python zonder bibliotheken te gebruiken

Je 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 doelmappen nodig.

hoe je je startknop kunt repareren

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'
with open(sourcePath, 'rb') as read:
with open(destinationPath, 'wb') as myfile:
myfile.write(read.read())

Om de code herbruikbaar te maken, kun je deze wijzigen in een functie:

def copyFile(source=None, destination=None):
if not (source and destination)==None:
with open(source, 'rb') as read:
with open(destination, 'wb') as myfile:
myfile.write(read.read())
else:
print('Please enter the source and destination paths')
copyFile(sourcePath, destinationPath)

Dat is het. Je hebt zojuist een herbruikbare bestandskopieermachine gemaakt met Python zonder een bibliotheek te gebruiken.

Blijf taken automatiseren met Python

Naast het helpen gefocust te blijven op uw code tijdens het bouwen van projecten, geeft het kopiëren van bestanden met Python u een beter inzicht in 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-commando's schrijven met Python als je wilt.

Deel Deel Tweeten E-mail Hoe u uw eigen opdrachtregelprogramma's in Python kunt maken met klikken

Wilt u uw eigen Python-opdrachtregelprogramma's maken, maar vindt u dit te moeilijk? Gebruik Click, een handige Python-tool om je code te stroomlijnen.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Python
Over de auteur Idisou Omisola(94 artikelen gepubliceerd)

Idowu is gepassioneerd door alles wat slimme technologie en productiviteit betreft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij vindt het ook heerlijk om af en toe uit de routine te stappen. Zijn passie om mensen de weg te wijzen in moderne technologie motiveert hem om meer te schrijven.

Meer van Idowu Omisola

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren