Se učite Pythona? Tukaj je opisano, kako kopirati datoteko

Se učite Pythona? Tukaj je opisano, kako kopirati datoteko

Ali želite izboljšati svoje znanje Pythona? Nato lahko poskusite izvesti nekaj nalog v računalniku s programom Python. Kopiranje in lepljenje datotek iz enega imenika v drugega s Pythonom je zabaven način.





Poleg zabave omogoča tudi hitro branje in pisanje datotek, ne da bi vas pri tem odvrnilo od kode. Če ste novi v Pythonu, je to takšna ali drugačna spretnost. Torej, ugotovimo, kako preko te objave kopirati datoteke s Pythonom.





Zahteve za kopiranje datotek s programom Python

Obstaja veliko načinov kopiranja in lepljenja datotek s programom Python. Zato so zahteve po tem drugačne in odvisne od metode, ki jo boste uporabili.





Čeprav morda ne potrebujete dodatnih modulov za kopiranje datotek s programom Python, lahko še vedno uporabite vgrajene knjižnice, če želite.

Na primer, če želite uporabiti datoteko ti metodo, jo morate uvoziti v kodo. Eden izmed priljubljenih načinov kopiranja datotek s Pythonom pa je uporaba shutil knjižnica.



Poglejmo, kako lahko te različne metode uporabimo za kopiranje datotek s Pythonom.

Kako kopirati datoteke s pomočjo Pythonove vgrajene knjižnice Shutil

The shutil module je vgrajena in zmogljiva knjižnica Python za hitro branje in pisanje datotek v Pythonu.





Če ga želite uporabiti, morate vnesti samo celotno pot izvorne in ciljne datoteke.

onemogočite dostop do omrežja do registra sistema Windows

V bistvu, shutil ima to obliko:





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

Na primer, spodnja koda uporablja shutil.copy () za kopiranje datoteke z imenom copy.txt iz mape, imenovane moja_mapa v drugo z imenom cilj . Nato ciljno datoteko preimenuje v 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)

Upoštevajte, da lahko svojo kodo napišete v kateri koli urejevalnik kod po vaši izbiri. Nato ga lahko zaženete z ukazno vrstico.

Lahko pa uporabite tudi privzeto Pythonovo integrirano razvojno okolje (IDLE), če ne poznate izvajanja Pythona prek ukazne vrstice.

Povezano: Ukazi ukaznega poziva (CMD), ki jih morate poznati

The shutil.copy metoda ne kopira metapodatkov izvorne datoteke. V bistvu vaša naprava vidi ciljno datoteko kot popolnoma novo in ji da nove metapodatke.

Če želite kopirati metapodatke skupaj z izvirno datoteko, uporabite datoteko shutil.copy2 metoda:

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

Zgornja metoda ohranja izvorne metapodatke stare datoteke v ciljni datoteki. Na primer, ciljna datoteka ohrani datum, ko ste ustvarili izvorno datoteko, njeno velikost in druge atribute.

The follow_symlinks argument je simbolična deklaracija povezave, ki omogoča shutil sledite absolutni poti. Zato ga morate vključiti, če sta izvorna in ciljna datoteka v različnih imenikih.

Če pa sta obe datoteki v trenutnem delovnem imeniku, vam ni treba vključiti datoteke follow_symlinks . Če to storite, Python sproži izjemo sintakse.

poiščite amazonski seznam želja po e -pošti

Če torej izvorno datoteko prilepite v trenutni delovni imenik, bi morala biti vaša koda videti tako:

import shutil
shutil.copy2(sourceFile, destinationFile)

Poleg zgornjih metod shutil lahko uporabite tudi shutil.copyfile ali shutil.copyfileobj .

Uporaba shutil.copyfileobj je nekoliko drugačen, saj zahteva vgrajeno odprto funkcijo. Nato morate branje in pisanje binarnih datotek vključiti 'rb' in 'wb' argumenti.

Poglejmo, kako shutil.copyfileobj metoda deluje z istimi imeniki, ki smo jih uporabljali prej:

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)

Upoštevajte, da shutil.copyfileobj () ne zahteva follow_symlinks prepir.

Vendar pa shutil.copyfile () deluje na skoraj enak način .kopirati in .kopija2 naredi. V svojih notranjih funkcijah se le neznatno razlikujejo.

Za uporabo shutil.copyfile () metoda:

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

Kako kopirati datoteke z modulom os

The ti modul uporablja dve vgrajeni metodi za kopiranje datotek; os.system () in os.popen () metode.

The os.system () metoda vam omogoča, da posnemate okolje ukazne vrstice.

Pomanjkljivost metod os pa je, da kopirajo samo datoteke v vašem trenutnem delovnem imeniku.

Za uporabo os.system () metoda v sistemu Windows:

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

Uporabite lahko tudi vgrajeno xcopy Ukaz terminala Windows:

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

Za uporabo os.sistema metodo v Linuxu, zamenjajte kopirati z cp :

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

Kako kopirati datoteke z metodo os.popen

Če želite uporabiti to metodo, zamenjajte os.system () z os.popen () .

V sistemu Windows uporabite:

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

Tako kot smo to storili mi os.system () , zamenjati kopirati z cp za uporabo te metode v Linuxu:

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

Kako kopirati datoteke s podprocesnim modulom Python

Poleg zgornjih metod lahko uporabite tudi podproces () knjižnica za kopiranje datotek v Pythonu:

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

V Linuxu pa uporabite:

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

The podproces uporablja tudi knjižnica podproces.check_out () metoda. Deluje na enak način subprocess.call () naredi:

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

V Linuxu zamenjajte kopirati z cp :

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

Vendar pa tako kot metode os tudi metode podprocesa delujejo samo z datotekami v trenutnem delovnem imeniku.

Opomba: Datoteke lahko kopirate tudi v mapo, če je v istem delovnem imeniku kot izvorna datoteka. Vse, kar morate storiti, je, da ime ciljne datoteke zamenjate z imenom ciljne mape. Vendar pa se prepričajte, da sta ciljna mapa in izvorna datoteka v vašem trenutnem delovnem imeniku.

Kako kopirati datoteke v Pythonu brez uporabe knjižnic

Datoteke lahko tudi kopirate v Python, ne da bi bili odvisni od knjižnice. Tako kot metoda shutil potrebujete le celotne poti izvornega in ciljnega imenika.

kako odpakirati datoteko tar gz v linuxu

Evo, kako to doseči:

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

Če želite kodo ponovno uporabiti, jo lahko spremenite v funkcijo:

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)

To je to. Pravkar ste naredili kopirni stroj za večkratno uporabo s Pythonom brez uporabe knjižnice.

Avtomatizirajte naloge s Pythonom

Kopiranje datotek s programom Python vam poleg lažjega osredotočanja na kodo pri gradnji projektov omogoča boljše razumevanje upravljanja datotek s programom Python. Vendar pa je igranje z nalogami Python način za izboljšanje znanja Pythona, še posebej, če ste začetnik.

Datum in uro na računalniku lahko na primer spremenite z modulom os. Če želite, lahko celo napišete ukaze bash po meri s Pythonom.

Deliti Deliti Cvrkutati E-naslov Kako s klikom ustvariti lastne programe ukazne vrstice v Pythonu

Želite ustvariti lastne programe za ukazno vrstico Python, vendar se vam zdi preveč težko? Uporabite Click, uporabno orodje Python za racionalizacijo vaše kode.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Python
O avtorju Idisou Omisola(94 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se poigrava s kodiranjem in se, ko mu je dolgčas, preklopi na šahovsko tablo, rad pa se občasno tudi loči od rutine. Njegova strast, da ljudem pokaže pot okoli sodobne tehnologije, ga motivira, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite