Haluatko parantaa Python-taitoasi? Sitten voit yrittää suorittaa joitain tehtäviä tietokoneellasi Pythonilla. Tiedostojen kopioiminen ja liittäminen hakemistosta toiseen Pythonilla on hauska tapa tehdä tämä.

Sen lisäksi, että se on hauskaa, voit lukea ja kirjoittaa tiedostoja nopeasti häiritsemättä koodiasi. Jos olet uusi Pythonissa, se on taito, jonka saatat joutua vielä valitsemaan tavalla tai toisella. Joten, selvitetään, kuinka kopioida tiedostoja Pythonilla tämän viestin kautta.

Vaatimukset tiedostojen kopioimiseksi Pythonilla

On monia tapoja kopioida ja liittää tiedostoja Pythonilla. Joten vaatimus sen tekemiseen vaihtelee ja riippuu menetelmästä, jonka päätät käyttää.

Vaikka tiedostojen kopioimiseksi Pythonilla ei ehkä tarvita ylimääräisiä moduuleja, voit silti käyttää sisäänrakennettuja kirjastoja, jos haluat.

Esimerkiksi, jos haluat käyttää os menetelmä, sinun on tuotava se koodiin. Yksi suosituimmista tavoista kopioida tiedostoja Pythonilla on kuitenkin shutil kirjasto.

Katsotaanpa, kuinka voimme käyttää näitä erilaisia ​​tapoja kopioida tiedostoja Pythonilla.

Kuinka kopioida tiedostoja käyttämällä Pythonin sisäänrakennettua Shutil-kirjastoa

shutil module on sisäänrakennettu ja tehokas Python-kirjasto tiedostojen nopeaan lukemiseen ja kirjoittamiseen Pythonissa.

Voit käyttää sitä vain toimittamalla lähde- ja kohdetiedostojen koko polun.

Pohjimmiltaan shutil ottaa tämän muodon:

shutil.copy ([lähdehakemistopolku], [kohdehakemistopolku], follow_symlinks = True)

Esimerkiksi alla oleva koodi käyttää shutil.copy () kopioida tiedoston nimeltä copy.txt nimellisestä kansiosta oma kansio toiseen nimettyyn määränpää. Sitten se nimeää kohdetiedoston uudelleen nimellä newFile.txt:

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

Huomaa, että voit kirjoittaa koodisi sisään mikä tahansa valitsemasi koodieditori. Voit sitten suorittaa sen komentorivillä.

Voit kuitenkin käyttää myös oletus Python Integrated Development Environment (IDLE) -ohjelmaa, jos et ole perehtynyt Pythonin suorittamiseen komentorivin kautta.

Liittyvät: Komentokehote (CMD) -komennot, jotka sinun on tiedettävä

shutil. kopio method ei kopioi lähdetiedoston metatietoja. Pohjimmiltaan koneesi näkee kohdetiedoston kokonaan uutena ja antaa sille uuden metatiedon.

Jos haluat kopioida metatiedot alkuperäisen tiedoston kanssa, käytä shutil.copy2 menetelmä:

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

Yllä oleva menetelmä säilyttää vanhan tiedoston alkuperäiset metatiedot kohdetiedostossa. Esimerkiksi kohdetiedosto säilyttää lähdetiedoston luomispäivämäärän, sen koon ja muut määritteet.

follow_symlinks argumentti on symbolinen linkki-ilmoitus, joka antaa shutil seuraa absoluuttista polkua. Siksi sinun on sisällytettävä se, jos lähde- ja kohdetiedostot ovat eri hakemistoissa.

Mutta jos molemmat tiedostot ovat nykyisessä työhakemistossa, sinun ei tarvitse lisätä a follow_symlinks. Jos teet niin, Python tuo syntaksin poikkeuksen.

Joten, jos liität lähdetiedoston nykyiseen työhakemistoon, koodisi pitäisi näyttää tältä:

tuonti shutil
shutil.copy2 (sourceFile, destinationFile)

Edellä mainittujen shutil-menetelmien lisäksi voit käyttää myös shutil.copyfile tai shutil.copyfileobj.

Käyttämällä shutil.copyfileobj on hieman erilainen, koska se vaatii sisäänrakennetun avata toiminto. Sitten sinun on luettava ja kirjoitettava binaari sisällyttämällä "rb" ja "wb" perustelut.

Katsotaanpa miten shutil.copyfileobj menetelmä toimii samoilla hakemistoilla kuin aiemmin:

tuonti shutil
sourceFilePath = avoin ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = avoin ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, määränpääFilePath)

Ota huomioon, että shutil.copyfileobj () ei vaadi follow_symlinks Perustelu.

Kuitenkin, shutil.copyfile () toimii melko samalla tavalla .kopio ja .kopio 2 tekee. Ne eroavat merkityksettömästi vain sisäisissä toiminnoissaan.

Voit käyttää shutil.copyfile () menetelmä:

tuonti shutil
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, määränpääFilePath)

Kuinka kopioida tiedostoja os-moduulilla

os moduuli käyttää kahta sisäänrakennettua tapaa kopioida tiedostoja; os. järjestelmä () ja os.popen () menetelmiä.

os. järjestelmä () menetelmä antaa sinun jäljitellä komentoriviympäristöä.

OS-menetelmien puute on kuitenkin se, että ne kopioivat tiedostoja vain nykyiseen työhakemistoon.

Voit käyttää os. järjestelmä () menetelmä Windowsissa:

tuonti os
os.system ('kopio lähde.txt määränpää.txt)

Voit käyttää myös sisäänrakennettua kopio Windows-terminaalikomento:

tuonti os
os.system ('xcopy source.txt määränpää.txt)

Voit käyttää os. järjestelmä menetelmä Linuxissa, vaihda kopio kanssa cp:

tuonti os
os.system ('cp lähde.txt määränpää.txt)

Kuinka kopioida tiedostoja os.popen-menetelmällä

Käytä tätä menetelmää korvaamalla os. järjestelmä () kanssa os.popen ().

Käytä Windowsissa:

tuonti os
os.popen ('kopio lähde.txt määränpää.txt)

Kuten teimme os. järjestelmä (), vaihda kopio kanssa cp käyttää tätä menetelmää Linuxissa:

tuonti os
os.popen ('cp source.txt määränpää.txt)

Kuinka kopioida tiedostoja Pythonin aliprosessimoduulilla

Edellä mainittujen menetelmien lisäksi voit käyttää myös aliprosessi () kirjasto tiedostojen kopioimiseksi Pythonissa:

tuoda aliprosessi nimellä sp
sp.call ("copy sourceFile destinationFile", shell = True)

Käytä kuitenkin Linuxissa:

tuoda aliprosessi nimellä sp
sp.call ("cp sourceFile destinationFile", shell = True)

aliprosessi kirjasto käyttää myös subprocess.check_out () menetelmä. Se toimii samalla tavalla subprocess.call () tekee:

tuoda aliprosessi nimellä sp
sp.check_out ("copy sourceFile destinationFile", shell = True)

Vaihda Linuxissa kopio kanssa cp:

tuoda aliprosessi nimellä sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)

Kuitenkin, kuten os-menetelmät, aliprosessimenetelmät toimivat vain nykyisen työhakemistosi tiedostojen kanssa.

Huomautus: Voit myös kopioida tiedostoja kansioon, jos se on samassa työhakemistossa kuin lähdetiedosto. Sinun tarvitsee vain korvata kohdetiedostonimi kohdekansion nimellä. Varmista kuitenkin, että kohdekansio ja lähdetiedosto ovat nykyisessä työhakemistossasi.

Kuinka kopioida tiedostoja Pythonissa ilman kirjastoja

Voit myös kopioida tiedostoja Pythonissa riippumatta kirjastosta. Kuten shutil-menetelmä, tarvitset vain lähde- ja kohdehakemistojen täydelliset polut.

Näin saavutat tämän:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
avoimen (sourcePath, "rb") kanssa seuraavasti:
avaamattomana (destinationPath, "wb") omana tiedostona:
myfile.write (lue.lue ())

Vastaanottaja tee koodi uudelleenkäytettäväksi, voit muokata sitä funktioksi:

def copyFile (lähde = ei mitään, kohde = ei mitään):
jos ei (lähde ja kohde) == Ei mitään:
avoimen (lähde, "rb") kanssa seuraavasti:
avaamattomana (määränpää, "wb") tiedostona:
myfile.write (lue.lue ())
muu:
tulosta ("Anna lähde- ja kohdepolut")
copyFile (sourcePath, destinationPath)

Se siitä. Teit juuri uudelleenkäytettävän tiedostokopiokoneen Pythonin kanssa käyttämättä kirjastoa.

Automatisoi tehtäviä Pythonin avulla

Sen lisäksi, että kopioit tiedostoja Pythonilla, voit auttaa keskittymään koodiin samalla, kun rakennat projekteja, joten voit paremmin ymmärtää tiedostojen hallintaa Pythonilla. Python-tehtävien kanssa pelaaminen on kuitenkin tapa parantaa Python-taitoasi, varsinkin jos olet aloittelija.

Voit esimerkiksi muuttaa päivämäärän ja kellonajan tietokoneellasi os-moduulilla. Voit jopa kirjoittaa mukautettuja bash-komentoja Pythonilla, jos haluat.

Sähköposti
Kuinka luoda omia komentoriviohjelmia Pythonissa napsauttamalla

Haluatko tehdä omat Python-komentoriviohjelmasi, mutta pidät sitä liian vaikeaksi? Yksinkertaista koodisi napsauttamalla hyödyllistä Python-työkalua.

Liittyvät aiheet
  • Ohjelmointi
  • Python
Kirjailijasta
Idowu Omisola (56 artikkelia julkaistu)

Idowu on intohimoisesti kaikesta älykkäästä tekniikasta ja tuottavuudesta. Vapaa-ajallaan hän leikkii koodauksella ja vaihtaa shakkilautaan, kun hän on tylsistynyt, mutta rakastaa myös irtautumista rutiinista silloin tällöin. Hänen intohimonsa osoittaa ihmisille tien ympäri nykytekniikkaa motivoi häntä kirjoittamaan enemmän.

Lisää Idowu Omisolasta

Tilaa uutiskirjeemme

Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja erikoistarjouksia!

Vielä yksi askel !!!

Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.

.