Ar norite patobulinti savo „Python“ įgūdžius? Tada galite pabandyti atlikti kai kurias užduotis savo kompiuteryje naudodami „Python“. Failų kopijavimas ir įklijavimas iš vieno katalogo į kitą naudojant „Python“ yra įdomus būdas tai padaryti.
Be to, kad tai įdomu, tai leidžia greitai skaityti ir rašyti failus, neatitrūkus nuo savo kodo. Jei dar nesinaudojote „Python“, tai įgūdis, kurį vis tiek gali prireikti pasirinkti vienaip ar kitaip. Taigi, sužinokime, kaip per šį įrašą nukopijuoti failus su „Python“.
Reikalavimai kopijuojant failus naudojant „Python“
Yra daugybė būdų, kaip nukopijuoti ir įklijuoti failus naudojant „Python“. Taigi reikalavimas tai padaryti skiriasi ir priklauso nuo metodo, kurį nuspręsite naudoti.
Nors norint kopijuoti failus su „Python“ jums gali nereikėti papildomų modulių, jei norite, vis tiek galite naudoti įmontuotas bibliotekas.
Pavyzdžiui, jei norite naudoti os metodą, turite jį importuoti į savo kodą. Tačiau vienas iš populiariausių failų kopijavimo su Python būdų yra šliuzas biblioteka.
Pažiūrėkime, kaip mes galime naudoti šiuos įvairius metodus kopijuoti failus su „Python“.
Kaip nukopijuoti failus naudojant „Python“ integruotą „Shutil“ biblioteką
šliuzas modulis yra įmontuota ir galinga „Python“ biblioteka, skirta greitai skaityti ir rašyti failus „Python“.
Norėdami jį naudoti, turite pateikti tik visą šaltinio ir paskirties failų kelią.
Iš esmės, šliuzas naudoja šį formatą:
shutil.copy ([šaltinio katalogo kelias], [paskirties katalogo kelias], follow_symlinks = True)
Pavyzdžiui, naudojamas žemiau pateiktas kodas shutil.copy () nukopijuoti failą pavadinimu copy.txt iš aplanko, vadinamo mano aplankas į kitą pavadintą Kelionės tikslas. Tada jis pervadina paskirties failą į newFile.txt:
importuoti šleilį
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Atminkite, kad kodą galite įrašyti bet kurį pasirinktą kodo redaktorių. Tada galite jį paleisti naudodami komandinę eilutę.
Tačiau taip pat galite naudoti numatytąją „Python“ integruotą kūrimo aplinką (IDLE), jei nesate susipažinę su „Python“ paleidimu per komandinę eilutę.
Susijęs: Komandų eilutės (CMD) komandos, kurias turite žinoti
shutil.kopija metodas nekopijuoja šaltinio failo metaduomenų. Iš esmės jūsų mašina mato paskirties failą kaip visiškai naują ir suteikia jam naujus metaduomenis.
Tačiau norėdami nukopijuoti metaduomenis kartu su pradiniu failu, naudokite shutil.kopija2 metodas:
importuoti šleilį
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)
Aukščiau pateiktas metodas išsaugo pirminius seno failo metaduomenis paskirties faile. Pavyzdžiui, paskirties failas išlaiko datą, kai sukūrėte šaltinio failą, jo dydį ir kitus atributus.
follow_symlinks argumentas yra simbolinė nuorodos deklaracija, leidžianti šliuzas eiti absoliučiu keliu. Todėl turite jį įtraukti, jei šaltinio ir paskirties failai yra skirtinguose kataloguose.
Bet jei abu failai yra dabartiniame darbiniame kataloge, nereikia įtraukti a follow_symlinks. Jei tai padarysite, „Python“ iškelia sintaksės išimtį.
Taigi, jei įklijuojate šaltinio failą į dabartinį darbo katalogą, kodas turėtų atrodyti taip:
importuoti šleilį
shutil.copy2 (sourceFile, paskirties failas)
Be aukščiau nurodytų „shutil“ metodų, taip pat galite naudoti shutil.copyfile arba shutil.copyfileobj.
Naudojant shutil.copyfileobj yra šiek tiek kitoks, nes tam reikia įmontuoto atviras funkcija. Tada turite perskaityti ir parašyti dvejetainius failus, įtraukdami „rb“ ir „wb“ argumentai.
Pažiūrėkime, kaip shutil.copyfileobj metodas veikia naudojant tuos pačius katalogus, kuriuos naudojome anksčiau:
importuoti šleilį
sourceFilePath = atidaryti ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = atidaryti ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, paskirtiesFilePath)
Prisimink tai shutil.copyfileobj () nereikalauja follow_symlinks argumentas.
Tačiau shutil.copyfile () veikia panašiai .kopija ir .kopija2 daro. Jie tik nežymiai skiriasi savo vidinėmis funkcijomis.
Norėdami naudoti shutil.copyfile () metodas:
importuoti šleilį
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directorsies/destination/newFile.txt"
shutil.copyfile (sourceFilePath, paskirtiesFilePath)
Kaip nukopijuoti failus naudojant os modulį
os modulis naudoja du integruotus metodus failams kopijuoti; os. sistema () ir os.popen () metodai.
os. sistema () metodas leidžia imituoti komandinės eilutės aplinką.
Tačiau „OS“ metodų trūkumas yra tas, kad jie kopijuoja failus tik dabartiniame jūsų darbo kataloge.
Norėdami naudoti os. sistema () metodas sistemoje „Windows“:
importuoti os
os.system ('kopijuoti source.txt paskirties.txt)
Taip pat galite naudoti įmontuotą kopija „Windows“ terminalo komanda:
importuoti os
os.system ('xcopy source.txt paskirties.txt)
Norėdami naudoti os.sistema metodas sistemoje „Linux“, pakeiskite kopija su cp:
importuoti os
os.system ('cp source.txt paskirties.txt)
Kaip nukopijuoti failus naudojant os.popen metodą
Norėdami naudoti šį metodą, pakeiskite os. sistema () su os.popen ().
„Windows“ sistemoje naudokite:
importuoti os
os.popen ('copy source.txt paskirties.txt kopija)
Kaip mes darėme su os. sistema (), pakeiskite kopija su cp naudoti šį metodą „Linux“:
importuoti os
os.popen ('cp source.txt paskirties.txt)
Kaip nukopijuoti failus naudojant „Python“ antrinio procesoriaus modulį
Be pirmiau minėtų metodų, taip pat galite naudoti antrinis procesas () biblioteka kopijuoti failus „Python“:
importo antrinis procesas kaip sp
sp.call ("copy sourceFile destinationFile", apvalkalas = True)
Tačiau „Linux“ naudokite:
importo antrinis procesas kaip sp
sp.call ("cp sourceFile destinationFile", apvalkalas = True)
antrinis procesas biblioteka taip pat naudoja subprocess.check_out () metodas. Tai veikia taip pat subprocess.call () daro:
importo antrinis procesas kaip sp
sp.check_out ("copy sourceFile destinationFile", apvalkalas = True)
Jei naudojate „Linux“, pakeiskite kopija su cp:
importo antrinis procesas kaip sp
sp.check_out ("cp sourceFile destinationFIle", apvalkalas = True)
Tačiau, kaip ir „os“ metodai, antrinio apdorojimo metodai veikia tik su failais, esančiais jūsų dabartiniame darbo kataloge.
Pastaba: Taip pat galite nukopijuoti failus į aplanką, jei jis yra tame pačiame darbiniame kataloge kaip ir šaltinio failas. Viskas, ką jums reikia padaryti, tai pakeisti paskirties failo pavadinimą paskirties aplanko pavadinimu. Tačiau įsitikinkite, kad paskirties aplankas ir šaltinio failas yra jūsų dabartiniame darbo kataloge.
Kaip nukopijuoti failus „Python“ nenaudojant bibliotekų
Be to, galite nukopijuoti failus „Python“, neatsižvelgdami į jokią biblioteką. Kaip ir „shutil“ metodas, jums reikia tik visų šaltinių ir paskirties katalogų kelių.
Štai kaip tai pasiekti:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
su open (sourcePath, "rb") taip:
su atidarytu (paskirtiesPath, "wb") kaip mano failą:
myfile.write (skaityti skaityti ())
Į padaryti kodą daugkartinį, galite jį modifikuoti į funkciją:
def copyFile (šaltinis = nėra, paskirties vieta = nėra):
jei ne (šaltinis ir paskirties vieta) == Nėra:
su „open“ (šaltinis, „rb“) taip:
su atidarytu (paskirties vieta, „wb“) kaip myfile:
myfile.write (skaityti skaityti ())
Kitas:
spausdinti ("Įveskite šaltinio ir paskirties kelius")
copyFile (sourcePath, paskirties kelias)
Viskas. Jūs ką tik padarėte daugkartinį failų kopijavimo įrenginį su „Python“ nenaudodami jokios bibliotekos.
Toliau automatizuokite užduotis naudodami „Python“
Kartu su „Python“ failais galite ne tik padėti susitelkti ties savo kodu kurdami projektus, bet ir geriau suprasti failų valdymą naudojant „Python“. Tačiau žaidimas su „Python“ užduotimis yra būdas pagerinti „Python“ įgūdžius, ypač jei esate pradedantysis.
Pavyzdžiui, naudodami „OS“ modulį galite pakeisti datą ir laiką kompiuteryje. Jei norite, netgi galite rašyti pasirinktines „bash“ komandas naudodami „Python“.
Norite sukurti savo „Python“ komandinės eilutės programas, bet jums tai per sunku? Norėdami supaprastinti kodą, naudokite „Click“, naudingą „Python“ įrankį.
- Programavimas
- „Python“

Idowu yra aistringas dėl bet kokių protingų technologijų ir produktyvumo. Laisvalaikiu jis žaidžia su kodavimu ir, kai nuobodžiauja, pereina prie šachmatų lentos, tačiau taip pat mėgsta kartkartėmis atitrūkti nuo rutinos. Aistra parodyti žmonėms kelią į šiuolaikines technologijas skatina daugiau rašyti.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.