Lærer du Python? Slik kopierer du en fil

Lærer du Python? Slik kopierer du en fil

Vil du forbedre din Python -ferdighet? Deretter kan du prøve å utføre noen oppgaver på datamaskinen din med Python. Å kopiere og lime inn filer fra en katalog til en annen med Python er en morsom måte å gjøre dette på.





I tillegg til å være morsomt, lar den deg lese og skrive filer raskt uten å bli distrahert av koden din. Hvis du er ny i Python, er det en ferdighet du kanskje fortsatt trenger å hente på en eller annen måte. Så la oss finne ut hvordan du kopierer filer med Python gjennom dette innlegget.





Krav for å kopiere filer med Python

Det er mange måter å kopiere og lime inn filer med Python. Så kravet for å gjøre det varierer og avhenger av metoden du bestemmer deg for å bruke.





Selv om du kanskje ikke trenger ekstra moduler for å kopiere filer med Python, kan du fortsatt bruke innebygde biblioteker hvis du vil.

For eksempel, hvis du vil bruke du metode, må du importere den til koden din. En av de populære måtene å kopiere filer med Python er imidlertid å bruke shutil bibliotek.



La oss se hvordan vi kan bruke disse forskjellige metodene til å kopiere filer med Python.

Hvordan kopiere filer ved hjelp av Pythons innebygde Shutil-bibliotek

De shutil modul er et innebygd og kraftig Python-bibliotek for å lese og skrive filer raskt i Python.





For å bruke den trenger du bare å angi hele banen til kilde- og destinasjonsfilene.

maskinvareakselerasjon krom på eller av

I hovedsak, shutil tar dette formatet:





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

For eksempel bruker koden nedenfor shutil.copy () for å kopiere en fil med navnet copy.txt fra en mappe som heter min_mappe til en annen som heter mål . Den omdøper deretter destinasjonsfilen til newFile.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)

Vær oppmerksom på at du kan skrive koden din i hvilken som helst kodeditor du ønsker. Du kan deretter kjøre den ved hjelp av kommandolinjen.

Du kan imidlertid også bruke standard Python Integrated Development Environment (IDLE) hvis du ikke er kjent med å kjøre Python via kommandolinjen.

I slekt: Kommandoprompt (CMD) kommandoer du må vite

De shutil.copy metoden kopierer ikke metadataene til kildefilen. I hovedsak ser maskinen på destinasjonsfilen som en helt og gir den nye metadata.

For å kopiere metadataene sammen med den opprinnelige filen, bruker du imidlertid shutil.copy2 metode:

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

Metoden ovenfor beholder de originale metadataene til den gamle filen i målfilen. For eksempel beholder målfilen datoen du opprettet kildefilen, størrelsen og andre attributter.

De follow_symlinks argument er en symbolsk lenkeerklæring som lar shutil følge en absolutt vei. Derfor må du inkludere den hvis kilde- og destinasjonsfilene er i forskjellige kataloger.

Men hvis begge filene er i din nåværende arbeidskatalog, trenger du ikke å inkludere en follow_symlinks . Hvis du gjør det, øker Python et syntaksunntak.

wi -fi har ikke en gyldig ip -konfigurasjon

Så hvis du limer inn kildefilen i din nåværende arbeidskatalog, skal koden din se slik ut:

import shutil
shutil.copy2(sourceFile, destinationFile)

I tillegg til å bruke shutil -metodene ovenfor, kan du også bruke shutil.copyfile eller shutil.copyfileobj .

Ved hjelp av shutil.copyfileobj er litt annerledes da det krever den innebygde åpen funksjon. Deretter må du lese og skrive binært ved å inkludere 'rb' og 'wb' argumenter.

La oss se hvordan shutil.copyfileobj metoden fungerer med de samme katalogene som vi brukte tidligere:

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)

Noter det shutil.copyfileobj () krever ikke follow_symlinks argument.

Derimot, shutil.copyfile () fungerer omtrent på samme måte .kopiere og .kopi2 gjør. De skiller seg bare ubetydelig i sine interne funksjoner.

For å bruke shutil.copyfile () metode:

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

Hvordan kopiere filer med OS -modulen

De du modulen bruker to innebygde metoder for å kopiere filer; os.system () og os.popen () metoder.

De os.system () metode lar deg etterligne kommandolinjemiljøet.

Imidlertid er en ulempe med OS -metoder at de bare kopierer filer i din nåværende arbeidskatalog.

For å bruke os.system () metode på Windows:

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

Du kan også bruke den innebygde xcopy Windows terminal kommando:

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

For å bruke os.system metode på Linux, erstatt kopiere med cp :

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

Hvordan kopiere filer ved hjelp av metoden os.popen

For å bruke denne metoden, erstatt os.system () med os.popen () .

På Windows, bruk:

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

Som vi gjorde med os.system () , erstatte kopiere med cp å bruke denne metoden på Linux:

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

Hvordan kopiere filer med Pythons delprosessmodul

I tillegg til metodene ovenfor kan du også bruke delprosess () bibliotek for å kopiere filer i Python:

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

Imidlertid, på Linux, bruk:

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

De delprosess biblioteket bruker også subprocess.check_out () metode. Det fungerer på samme måte subprocess.call () gjør:

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

På Linux, erstatt kopiere med cp :

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

I likhet med os -metodene fungerer imidlertid delprosessmetoder bare med filer i din nåværende arbeidskatalog.

Merk: Du kan også kopiere filer til en mappe hvis den er i samme arbeidskatalog som kildefilen. Alt du trenger å gjøre er å erstatte målfilnavnet med navnet på destinasjonsmappen. Sørg imidlertid for at målmappen og kildefilen er i din nåværende arbeidskatalog.

Hvordan kopiere filer i Python uten å bruke biblioteker

Du kan også kopiere filer i Python uten å avhenge av noe bibliotek. I likhet med shutil -metoden trenger du bare hele banene til kilde- og destinasjonskatalogene.

hvor mye penger tjener programmerere

Slik oppnår du dette:

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())

For å gjøre koden gjenbrukbar, kan du endre den til en funksjon:

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)

Det er det. Du har nettopp laget en gjenbrukbar filkopimaskin med Python uten å bruke noe bibliotek.

Fortsett å automatisere oppgaver med Python

I tillegg til å hjelpe deg med å holde fokus på koden din mens du bygger prosjekter, kan du ved å kopiere filer med Python bedre forstå filbehandling med Python. Å leke med Python -oppgaver er imidlertid en måte å forbedre din Python -ferdighet på, spesielt hvis du er nybegynner.

For eksempel kan du endre dato og klokkeslett på PC -en med os -modulen. Du kan til og med skrive tilpassede bash -kommandoer med Python hvis du vil.

Dele Dele kvitring E -post Hvordan lage dine egne kommandolinjeprogrammer i Python med klikk

Vil du lage dine egne Python -kommandolinjeprogrammer, men synes det er for vanskelig? Bruk Click, et nyttig Python -verktøy for å effektivisere koden.

Les neste
Relaterte temaer
  • Programmering
  • Python
Om forfatteren Idisou Omisola(94 artikler publisert)

Idowu brenner for alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han liker også å bryte fra rutinen en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.

Mer fra Idowu Omisola

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere