Lærer du Python? Sådan kopierer du en fil

Lærer du Python? Sådan kopierer du en fil

Vil du forbedre din Python -færdighed? Derefter kan du prøve at udføre nogle opgaver på din computer med Python. Kopiering og indsætning af filer fra et bibliotek til et andet med Python er en sjov måde at gøre dette på.





Ud over at det er sjovt, lader det dig læse og skrive filer hurtigt uden at blive distraheret fra din kode. Hvis du er ny i Python, er det en færdighed, du muligvis stadig skal bruge på en eller anden måde. Så lad os finde ud af, hvordan du kopierer filer med Python gennem dette indlæg.





Krav til kopiering af filer med Python

Der er mange måder at kopiere og indsætte filer med Python. Så kravet til at gøre det varierer og afhænger af den metode, du beslutter dig for at bruge.





Selvom du muligvis ikke har brug for ekstra moduler til at kopiere filer med Python, kan du stadig bruge indbyggede biblioteker, hvis du vil.

For eksempel, hvis du vil bruge du metode, skal du importere den til din kode. En af de populære måder at kopiere filer med Python er imidlertid at bruge shutil bibliotek.



Lad os se, hvordan vi kan bruge disse forskellige metoder til at kopiere filer med Python.

Sådan kopieres filer ved hjælp af Pythons indbyggede Shutil-bibliotek

Det shutil modul er et indbygget og kraftfuldt Python-bibliotek til hurtigt at læse og skrive filer i Python.





For at bruge det behøver du kun at angive hele stien til kilde- og destinationsfilerne.

hvordan man fortæller hvem der fulgte dig på instagram

I det væsentlige, shutil tager dette format:





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

Koden herunder bruger f.eks shutil.copy () at kopiere en fil med navnet copy.txt fra en mappe kaldet min_mappe ind i en anden navngivet bestemmelsessted . Den omdøber derefter destinationsfilen 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)

Bemærk, at du kan skrive din kode i en hvilken som helst kode -editor efter eget valg. Du kan derefter køre det ved hjælp af kommandolinjen.

Du kan dog også bruge standard Python Integrated Development Environment (IDLE), hvis du ikke er bekendt med at køre Python via kommandolinjen.

Relaterede: Kommandoprompt (CMD) kommandoer, du skal kende

Det shutil.copy metode kopierer ikke kildefilens metadata. I det væsentlige ser din maskine destinationsfilen som en helt ny og giver den nye metadata.

For at kopiere metadataene sammen med den originale fil skal du dog bruge shutil.copy2 metode:

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

Metoden ovenfor bevarer de originale metadata for den gamle fil i destinationsfilen. For eksempel beholder destinationsfilen den dato, du oprettede kildefilen, dens størrelse og andre attributter.

Det følg_symlinks argument er en symbolsk linkerklæring, der lader shutil følge en absolut vej. Derfor skal du inkludere den, hvis kilde- og destinationsfilerne er i forskellige mapper.

Men hvis begge filer er i din nuværende arbejdskatalog, behøver du ikke at inkludere en følg_symlinks . Hvis du gør det, rejser Python en syntaksundtagelse.

hvorfor går øretelefoner så let i stykker?

Så hvis du indsætter kildefilen i din nuværende arbejdskatalog, skal din kode se sådan ud:

import shutil
shutil.copy2(sourceFile, destinationFile)

Ud over at bruge shutil -metoderne ovenfor kan du også bruge shutil.copyfile eller shutil.copyfileobj .

Ved brug af shutil.copyfileobj er lidt anderledes, da det kræver det indbyggede åben fungere. Derefter skal du læse og skrive binært ved at inkludere 'rb' og 'wb' argumenter.

Lad os se, hvordan shutil.copyfileobj metode fungerer ved hjælp af de samme mapper, som vi tidligere brugte:

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 () kræver ikke følg_symlinks argument.

Imidlertid, shutil.copyfile () fungerer nogenlunde på samme måde .kopi og .kopi2 gør. De adskiller sig kun ubetydeligt i deres interne funktioner.

At bruge 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)

Sådan kopieres filer med OS -modulet

Det du modul bruger to indbyggede metoder til at kopiere filer; os.system () og os.popen () metoder.

Det os.system () metode giver dig mulighed for at efterligne kommandolinjemiljøet.

En mangel ved os -metoder er imidlertid, at de kun kopierer filer i dit nuværende arbejdskatalog.

At bruge os.system () metode i Windows:

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

Du kan også bruge den indbyggede xcopy Windows terminal kommando:

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

At bruge os.system metode på Linux, udskift kopi med cp :

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

Sådan kopieres filer ved hjælp af metoden os.popen

For at bruge denne metode skal du udskifte os.system () med os.popen () .

I Windows skal du bruge:

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

Som vi gjorde med os.system () , udskift kopi med cp for at bruge denne metode på Linux:

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

Sådan kopieres filer med Pythons delprocesmodul

Ud over ovenstående metoder kan du også bruge delproces () bibliotek til at kopiere filer i Python:

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

På Linux skal du dog bruge:

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

Det delproces biblioteket også bruger subprocess.check_out () metode. Det fungerer på samme måde subprocess.call () gør:

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

På Linux, udskift kopi med cp :

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

Men ligesom os -metoderne fungerer delprocesmetoder kun med filer i din nuværende arbejdskatalog.

Bemærk: Du kan også kopiere filer til en mappe, hvis den er i det samme arbejdskatalog som kildefilen. Alt du skal gøre er at erstatte destinationsfilnavnet med navnet på destinationsmappen. Sørg dog for, at destinationsmappen og kildefilen er i dit nuværende arbejdskatalog.

Sådan kopieres filer i Python uden brug af biblioteker

Du kan også kopiere filer i Python uden at være afhængig af noget bibliotek. Ligesom shutil -metoden har du kun brug for de fulde stier for kilde- og destinationsmapperne.

hvordan man kan kontrollere, om din telefon er hacket

Sådan opnå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 at gøre koden genanvendelig kan du ændre den til en funktion:

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 lige lavet en genanvendelig filkopimaskine med Python uden at bruge noget bibliotek.

Fortsæt med at automatisere opgaver med Python

Ud over at hjælpe dig med at holde fokus på din kode, mens du bygger projekter, giver kopiering af filer med Python dig en bedre forståelse af filhåndtering med Python. Imidlertid er leg med Python -opgaver en måde at forbedre din Python -færdighed på, især hvis du er nybegynder.

For eksempel kan du ændre dato og klokkeslæt på din pc med os -modulet. Du kan endda skrive brugerdefinerede bash -kommandoer med Python, hvis du vil.

Del Del Tweet E -mail Sådan opretter du dine egne kommandolinjeprogrammer i Python med klik

Vil du lave dine egne Python -kommandolinjeprogrammer, men synes det er for svært? Brug Click, et nyttigt Python -værktøj til at strømline din kode.

Læs Næste
Relaterede emner
  • Programmering
  • Python
Om forfatteren Idisou Omisola(94 artikler udgivet)

Idowu brænder for alt smart teknologi og produktivitet. I fritiden leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde væk fra rutinen en gang imellem. Hans passion for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.

Mere fra Idowu Omisola

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere