Kas soovite oma Pythoni oskusi parandada? Seejärel võite proovida Pythoni abil arvutis mõnda ülesannet täita. Failide kopeerimine ja kleepimine Pythoniga ühest kataloogist teise on lõbus viis seda teha.
Lisaks lõbususele võimaldab see teil faile kiiresti lugeda ja kirjutada, ilma et see häiriks teie koodi. Kui olete Pythoni jaoks uus, on see oskus, mida peate võib-olla ikkagi ühel või teisel viisil üles võtma. Niisiis, uurime, kuidas selle postituse kaudu Pythoniga faile kopeerida.
Nõuded failide kopeerimiseks Pythoni abil
Failide kopeerimiseks ja kleepimiseks Pythoni abil on palju võimalusi. Niisiis, selle tegemise nõue varieerub ja sõltub meetodist, mida otsustate kasutada.
Kuigi teil ei pruugi Pythoni abil failide kopeerimiseks vaja minna lisamooduleid, saate soovi korral siiski sisseehitatud teeke kasutada.
Näiteks kui soovite kasutada os meetodi, peate selle oma koodi importima. Kuid üks populaarsemaid viise failide kopeerimiseks Pythoni abil on Sulg raamatukogu.
Vaatame, kuidas saame neid erinevaid meetodeid Pythoniga failide kopeerimiseks kasutada.
Kuidas kopeerida faile Pythoni sisseehitatud Shutili teegi abil
The Sulg moodul on sisseehitatud ja võimas Pythoni teek failide kiireks lugemiseks ja kirjutamiseks Pythonis.
Selle kasutamiseks peate esitama ainult lähte- ja sihtfailide täieliku tee.
Sisuliselt, Sulg võtab selle vormingu:
shutil.copy ([lähtekataloogi tee], [sihtkataloogi tee], follow_symlinks = tõene)
Näiteks kasutab allolev kood shutil.copy () nimelise faili kopeerimiseks copy.txt nimega kaustast minu_kaust teise nimega sihtkoht. Seejärel nimetab see sihtfaili ümber newFile.txt:
import sulgur
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Pange tähele, et saate oma koodi sisse kirjutada mis tahes teie valitud koodiredaktor. Seejärel saate selle käivitada käsurea abil.
Siiski võite kasutada ka Pythoni vaikimisi integreeritud arenduskeskkonda (IDLE), kui te pole Pythoni käitamisega käsurea kaudu tuttav.
Seotud: Käsuviiba (CMD) käsud, mida peate teadma
The shutil.koopia meetod ei kopeeri lähtefaili metaandmeid. Sisuliselt näeb teie masin sihtfaili täielikult uuena ja annab sellele uued metaandmed.
Kuid metaandmete kopeerimiseks koos algse failiga kasutage shutil.koopia2 meetod:
import sulgur
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)
Eespool toodud meetod säilitab sihtfailis vana faili algsed metaandmed. Näiteks säilitab sihtkohafail lähtefaili loomise kuupäeva, selle suuruse ja muud atribuudid.
The follow_symlinks argument on sümboolne lingi deklaratsioon, mis võimaldab Sulg järgima absoluutset rada. Seetõttu peate selle lisama, kui lähte- ja sihtkohafailid on erinevates kataloogides.
Kuid kui mõlemad failid asuvad teie praeguses töökataloogis, ei pea te a-d lisama follow_symlinks. Kui te seda teete, tõstab Python süntaksierandi.
Seega, kui kleepite lähtefaili oma praegusesse töökataloogi, peaks teie kood välja nägema järgmine:
import sulgur
shutil.copy2 (sourceFile, destinationFile)
Lisaks ülaltoodud shutil-meetodite kasutamisele võite kasutada ka shutil.copyfile või shutil.copyfileobj.
Kasutamine shutil.copyfileobj on natuke erinev, kuna see nõuab sisseehitatud avatud funktsioon. Seejärel peate lugema ja kirjutama binaarse, lisades "rb" ja "wb" argumendid.
Vaatame, kuidas shutil.copyfileobj meetod töötab samade kataloogidega, mida varem kasutasime:
import sulgur
sourceFilePath = avatud ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = avatud ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)
Pange tähele, et shutil.copyfileobj () ei nõua follow_symlinks argument.
Kuid, shutil.copyfile () töötab üsna samamoodi .koopia ja .koopia2 teeb. Nad erinevad oma sisemiste funktsioonide poolest vaid tähtsusetult.
Kasutamiseks shutil.copyfile () meetod:
import sulgur
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directorsies/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Kuidas faile kopeerida os-mooduliga
The os moodul kasutab failide kopeerimiseks kahte sisseehitatud meetodit; os.süsteem () ja os.popen () meetodid.
The os.süsteem () meetod võimaldab teil jäljendada käsurea keskkonda.
OS-i meetodite puuduseks on aga see, et nad kopeerivad faile ainult teie praeguses töökataloogis.
Kasutamiseks os.süsteem () meetod Windowsis:
impordi os
os.system ('copy source.txt sihtkoha.txt koopia)
Võite kasutada ka sisseehitatud koopia Windowsi terminali käsk:
impordi os
os.system ('xcopy source.txt sihtkoha.txt)
Kasutamiseks os. süsteem meetod Linuxis, asendage koopia koos cp:
impordi os
os.system ('cp source.txt destination.txt)
Kuidas faile kopeerida meetodi os.popen abil
Selle meetodi kasutamiseks asendage os.süsteem () koos os.popen ().
Windowsis kasutage järgmist:
impordi os
os.popen ('copy.txt sihtkoha.txt koopia)
Nagu me tegime os.süsteem (), asendage koopia koos cp selle meetodi kasutamiseks Linuxis:
impordi os
os.popen ('cp source.txt destination.txt)
Kuidas kopeerida faile Pythoni alamprotsessimooduliga
Lisaks ülaltoodud meetoditele saate kasutada ka alamprotsess () kogu Pythonis failide kopeerimiseks:
impordi alamprotsess kui sp
sp.call ("copy sourceFile destinationFile", shell = True)
Linuxis kasutage aga järgmist:
impordi alamprotsess kui sp
sp.call ("cp sourceFile destinationFile", kest = True)
The alamprotsess raamatukogu kasutab ka subprocess.check_out () meetod. See töötab samamoodi alamprotsess.kõne () teeb:
impordi alamprotsess kui sp
sp.check_out ("copy sourceFile destinationFile", shell = True)
Linuxis asendage see koopia koos cp:
impordi alamprotsess kui sp
sp.check_out ("cp sourceFile destinationFIle", kest = True)
Kuid nagu os-meetodid, töötavad alamprotsessimeetodid ainult teie praeguses töökataloogis olevate failidega.
Märge: Samuti saate faile kopeerida kausta, kui see asub lähtefailiga samas töökataloogis. Kõik, mida peate tegema, on asendada sihtkoha failinimi sihtkausta nimega. Veenduge siiski, et sihtkaust ja lähtefail asuvad teie praeguses töökataloogis.
Kuidas kopeerida Pythonis faile raamatukogusid kasutamata
Samuti saate Pythonis faile kopeerida, sõltumata ühestki teegist. Nagu ka shutil-meetod, vajate ainult lähte- ja sihtkataloogide täielikke teid.
Selle saavutamiseks toimige järgmiselt.
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
avatud (sourcePath, "rb") järgmiselt:
avatud failiga (destinationPath, "wb") minu failina:
myfile.write (read.read ())
To muuta kood korduvkasutatavaks, saate seda muuta funktsiooniks:
def copyFile (allikas = pole, sihtkoht = pole):
kui ei (allikas ja sihtkoht) == Puudub:
avatud (allikas, "rb") järgmiselt:
minu failina avatud (sihtkoht, "wb"):
myfile.write (read.read ())
muu:
print ("Sisestage lähte- ja sihtkohateed")
copyFile (sourcePath, destinationPath)
See selleks. Tegite just Pythoniga korduvkasutatava failikoopiamasina, ilma et teegi kasutaksite.
Jätkake Pythoni abil ülesannete automatiseerimist
Lisaks sellele, et saate Pythoniga failide kopeerimine aidata teil keskenduda oma koodile projektide ehitamisel, saate failihaldust Pythoni abil paremini mõista. Pythoni ülesannetega ringi mängimine on aga viis Pythoni oskuste parandamiseks, eriti kui olete algaja.
Näiteks saate os-mooduliga muuta oma arvutis kuupäeva ja kellaaega. Soovi korral saate Pythoniga isegi kohandatud bashi käske kirjutada.
Kas soovite luua oma Pythoni käsureaprogrammid, kuid peate seda liiga raskeks? Koodi sujuvamaks muutmiseks kasutage kasulikku Pythoni tööriista Click.
- Programmeerimine
- Python
Idowu on kirglik kõigest nutikast tehnoloogiast ja tootlikkusest. Vabal ajal mängib ta kodeerimisega ringi ja lülitub igavuse korral malelauale, kuid armastab ka rutiinist lahti murda. Tema kirg näidata inimestele moodsate tehnikate kohta motiveerib teda rohkem kirjutama.
Telli meie uudiskiri
Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!
Veel üks samm !!!
Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.