Vai vēlaties uzlabot savas Python prasmes? Tad jūs varat mēģināt veikt dažus uzdevumus datorā, izmantojot Python. Failu kopēšana un ielīmēšana no viena direktorija citā, izmantojot Python, ir jautrs veids, kā to izdarīt.

Papildus jautrībai tas ļauj ātri lasīt un rakstīt failus, neatraujoties no sava koda. Ja esat jauns Python lietotājs, tā ir prasme, kas jums joprojām var būt vajadzīga, lai uzņemtu vienā vai otrā veidā. Tātad, uzzināsim, kā kopēt failus ar Python, izmantojot šo ziņu.

Prasības failu kopēšanai ar Python

Ir daudz veidu, kā kopēt un ielīmēt failus, izmantojot Python. Tātad prasība to darīt atšķiras un ir atkarīga no metodes, kuru nolemjat izmantot.

Lai gan, lai kopētu failus ar Python, jums, iespējams, nav nepieciešami papildu moduļi, jūs joprojām varat izmantot iebūvētās bibliotēkas, ja vēlaties.

Piemēram, ja vēlaties izmantot os metode, tā jāimportē savā kodā. Tomēr viens no populārākajiem failu kopēšanas veidiem ar Python ir štils bibliotēka.

Apskatīsim, kā mēs varam izmantot šīs dažādās metodes, lai kopētu failus ar Python.

instagram viewer

Failu kopēšana, izmantojot Python iebūvēto Shutil bibliotēku

The štils modulis ir iebūvēta un jaudīga Python bibliotēka failu ātrai lasīšanai un rakstīšanai Python.

Lai to izmantotu, jums jānorāda tikai pilns avota un mērķa failu ceļš.

Būtībā, štils izmanto šo formātu:

shutil.copy ([avota direktorijas ceļš], [galamērķa direktorijas ceļš], follow_symlinks = True)

Piemēram, zemāk izmantotais kods tiek izmantots shutil.copy () lai kopētu failu ar nosaukumu copy.txt no mapes ar nosaukumu my_folder citā vārdā galamērķis. Pēc tam tā pārdēvē mērķa failu kā newFile.txt:

importa štils
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)

Ņemiet vērā, ka kodu varat ierakstīt jebkuru jūsu izvēlēto kodu redaktoru. Pēc tam to varat palaist, izmantojot komandrindu.

Tomēr jūs varat izmantot arī noklusējuma Python integrēto izstrādes vidi (IDLE), ja neesat pazīstams ar Python palaišanu, izmantojot komandrindu.

Saistīts: Komandu uzvednes (CMD) komandas, kas jums jāzina

The shutil.kopija metode nekopē avota faila metadatus. Būtībā jūsu mašīna galamērķa failu redz pilnīgi kā jaunu un piešķir tam jaunus metadatus.

Tomēr, lai kopētu metadatus kopā ar oriģinālo failu, izmantojiet shutil.copy2 metode:

importa štils
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)

Iepriekš aprakstītā metode saglabā sākotnējā vecā faila metadatus mērķa failā. Piemēram, galamērķa failā tiek saglabāts avota faila izveidošanas datums, tā lielums un citi atribūti.

The follow_symlinks arguments ir simboliska saites deklarācija, kas ļauj štils iet absolūtu ceļu. Tāpēc jums tas jāiekļauj, ja avota un mērķa faili atrodas dažādos direktorijos.

Bet, ja abi faili atrodas pašreizējā darba direktorijā, jums nav jāiekļauj a follow_symlinks. Ja jūs to izdarīsit, Python paaugstina sintakses izņēmumu.

Tātad, ja ielīmējat avota failu pašreizējā darba direktorijā, kodam vajadzētu izskatīties šādi:

importa štils
shutil.copy2 (sourceFile, destinationFile)

Papildus iepriekš minēto shutil metožu izmantošanai varat arī izmantot shutil.copyfile vai shutil.copyfileobj.

Izmantojot shutil.copyfileobj ir nedaudz atšķirīgs, jo tam ir nepieciešams iebūvēts atvērts funkciju. Tad jums ir jālasa un jāraksta binārā versija, iekļaujot "rb" un "wb" argumenti.

Apskatīsim, kā shutil.copyfileobj metode darbojas, izmantojot tos pašus direktorijus, kurus izmantojām iepriekš:

importa štils
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)

Pieraksti to shutil.copyfileobj () neprasa follow_symlinks arguments.

Tomēr shutil.copyfile () darbojas diezgan tāpat .kopija un .kopija2 dara. Viņu iekšējās funkcijas atšķiras tikai nenozīmīgi.

Lai izmantotu shutil.copyfile () metode:

importa štils
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)

Kā kopēt failus ar os moduli

The os modulis izmanto divas iebūvētas metodes failu kopēšanai; os.system () un os.popen () metodes.

The os.system () metode ļauj atdarināt komandrindas vidi.

Tomēr os metožu trūkums ir tāds, ka tās kopē failus tikai pašreizējā darba direktorijā.

Lai izmantotu os.system () metode operētājsistēmā Windows:

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

Varat arī izmantot iebūvēto kopija Windows termināla komanda:

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

Lai izmantotu os.sistēma metodi Linux, nomainiet kopija ar cp:

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

Kā kopēt failus, izmantojot os.popen metodi

Lai izmantotu šo metodi, nomainiet os.system () ar os.popen ().

Operētājsistēmā Windows izmantojiet:

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

Kā mēs to darījām ar os.system (), aizvietot kopija ar cp izmantot šo metodi Linux:

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

Kā kopēt failus ar Python apakšprocesa moduli

Papildus iepriekšminētajām metodēm varat izmantot arī apakšprocess () bibliotēka failu kopēšanai Python:

importa apakšprocess kā sp
sp.call ("copy sourceFile destinationFile", apvalks = True)

Tomēr operētājsistēmā Linux izmantojiet:

importa apakšprocess kā sp
sp.call ("cp sourceFile destinationFile", apvalks = True)

The apakšprocess bibliotēka arī izmanto subprocess.check_out () metodi. Tas darbojas tāpat subprocess.call () veic:

importa apakšprocess kā sp
sp.check_out ("copy sourceFile destinationFile", apvalks = True)

Operētājsistēmā Linux nomainiet kopija ar cp:

importa apakšprocess kā sp
sp.check_out ("cp sourceFile destinationFIle", apvalks = True)

Tomēr, tāpat kā os metodes, arī apakšapstrādes metodes darbojas tikai ar failiem pašreizējā darba direktorijā.

Piezīme: Varat arī kopēt failus mapē, ja tā atrodas tajā pašā direktorijā kā avota fails. Viss, kas jums jādara, ir aizstāt galamērķa faila nosaukumu ar mērķa mapes nosaukumu. Tomēr pārliecinieties, ka mērķa mape un avota fails atrodas pašreizējā darba direktorijā.

Kā kopēt failus Python, neizmantojot bibliotēkas

Varat arī kopēt failus Python, neatkarīgi no bibliotēkas. Tāpat kā Shutil metode, jums ir nepieciešami tikai pilni avotu un galamērķa direktoriju ceļi.

Lai to panāktu, rīkojieties šādi:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
ar open (sourcePath, "rb") lasāms šādi:
ar atvērtu (destinationPath, "wb") kā myfile:
myfile.write (lasīt lasīt ())

Uz padarīt kodu atkārtoti lietojamu, to var pārveidot par funkciju:

def copyFile (avots = nav, galamērķis = nav):
ja nē (avots un galamērķis) == Nav:
ar atvērtu (avots, "rb") lasīt šādi:
ar atvērtu (galamērķis, "wb") kā myfile:
myfile.write (lasīt lasīt ())
cits:
drukāt ("Lūdzu, ievadiet avota un mērķa ceļus")
copyFile (sourcePath, destinationPath)

Tieši tā. Jūs tikko izveidojāt atkārtoti lietojamu failu kopētāju ar Python, neizmantojot bibliotēku.

Turpiniet automatizēt uzdevumus, izmantojot Python

Failu kopēšana ar Python ļauj ne tikai palīdzēt koncentrēties uz savu kodu, veidojot projektus, bet arī labāk izprast failu pārvaldību ar Python. Tomēr spēlēšanās ar Python uzdevumiem ir veids, kā uzlabot savas Python prasmes, it īpaši, ja esat iesācējs.

Piemēram, ar OS moduli varat mainīt datumu un laiku datorā. Jūs pat varat rakstīt pielāgotas bash komandas ar Python, ja vēlaties.

E-pasts
Kā izveidot savas komandrindas programmas Python ar

Vai vēlaties izveidot savas Python komandrindas programmas, bet jums tas ir pārāk grūti? Lai vienkāršotu kodu, izmantojiet klikšķi - noderīgu Python rīku.

Saistītās tēmas
  • Programmēšana
  • Python
Par autoru
Idowu Omisola (Publicēti 56 raksti)

Idowu aizrauj kaut ko gudru tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pāriet uz šaha galdiņu, kad viņam ir garlaicīgi, taču viņš mīl arī kādu laiku atrauties no rutīnas. Aizraušanās ar cilvēku parādīšanu mūsdienu tehnoloģijās motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.