Doriți să vă îmbunătățiți abilitatea Python? Apoi, puteți încerca să efectuați unele sarcini pe computerul dvs. cu Python. Copierea și lipirea fișierelor dintr-un director în altul cu Python este un mod distractiv de a face acest lucru.

Pe lângă faptul că este distractiv, vă permite să citiți și să scrieți fișiere rapid, fără a vă distrage atenția de la cod. Dacă sunteți nou în Python, este o abilitate de care s-ar putea să aveți nevoie să luați într-un fel sau altul. Deci, haideți să aflăm cum să copiați fișiere cu Python prin această postare.

Cerințe pentru copierea fișierelor cu Python

Există multe modalități de a copia și lipi fișiere cu Python. Deci, cerința pentru a face acest lucru variază și depinde de metoda pe care decideți să o utilizați.

Deși este posibil să nu aveți nevoie de module suplimentare pentru a copia fișiere cu Python, puteți utiliza în continuare biblioteci încorporate, dacă doriți.

De exemplu, dacă doriți să utilizați fișierul os metoda, trebuie să o importați în codul dvs. Cu toate acestea, una dintre modalitățile populare de copiere a fișierelor cu Python este utilizarea

shutil bibliotecă.

Să vedem cum putem folosi aceste diverse metode pentru a copia fișiere cu Python.

Cum să copiați fișiere utilizând biblioteca Shutil încorporată a Python

shutil Modulul este o bibliotecă Python încorporată și puternică pentru citirea și scrierea rapidă a fișierelor în Python.

Pentru ao utiliza, trebuie doar să furnizați calea completă a fișierelor sursă și destinație.

În esență, shutil ia acest format:

shutil.copy ([calea directorului sursă], [calea directorului destinație], follow_symlinks = Adevărat)

De exemplu, codul de mai jos folosește shutil.copy () pentru a copia un fișier numit copy.txt dintr-un dosar numit fisierul meu în altul numit destinaţie. Apoi redenumește fișierul de destinație ca 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)

Rețineți că puteți scrie codul în orice editor de cod la alegere. Apoi îl puteți rula folosind linia de comandă.

Cu toate acestea, puteți utiliza și mediul implicit de dezvoltare integrat Python (IDLE) dacă nu sunteți familiarizat cu rularea Python prin linia de comandă.

Legate de: Comenzi din Prompt Command (CMD) pe care trebuie să le cunoașteți

shutil.copy metoda nu copiază metadatele fișierului sursă. În esență, mașina dvs. vede fișierul de destinație ca unul nou în întregime și îi oferă metadate noi.

Cu toate acestea, pentru a copia metadatele împreună cu fișierul original, utilizați fișierul shutil.copy2 metodă:

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

Metoda de mai sus păstrează metadatele originale ale fișierului vechi din fișierul de destinație. De exemplu, fișierul destinație păstrează data la care ați creat fișierul sursă, dimensiunea acestuia și alte atribute.

follow_symlinks argumentul este o declarație de legătură simbolică care permite shutil urmează o cale absolută. Prin urmare, trebuie să îl includeți dacă fișierele sursă și destinație sunt în directoare diferite.

Dar dacă ambele fișiere se află în directorul dvs. de lucru curent, nu trebuie să includeți un follow_symlinks. Dacă da, Python creează o excepție de sintaxă.

Deci, dacă lipiți fișierul sursă în directorul curent de lucru, codul dvs. ar trebui să arate astfel:

import shutil
shutil.copy2 (SourceFile, destinationFile)

Pe lângă utilizarea metodelor shutil de mai sus, puteți utiliza și shutil.copyfile sau shutil.copyfileobj.

Folosind shutil.copyfileobj este puțin diferit, deoarece necesită încorporat deschis funcţie. Apoi, trebuie să citiți și să scrieți binar prin includerea fișierului "rb" și „wb” argumente.

Să vedem cum shutil.copyfileobj metoda funcționează folosind aceleași directoare pe care le-am folosit anterior:

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)

Rețineți că shutil.copyfileobj () nu necesită follow_symlinks argument.

In orice caz, shutil.copyfile () funcționează cam la fel .copie și .copy2 face. Ele diferă doar nesemnificativ în funcțiile lor interne.

Pentru a utiliza shutil.copyfile () metodă:

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

Cum să copiați fișiere cu modulul os

os modulul folosește două metode încorporate pentru a copia fișiere; os.system () și os.popen () metode.

os.system () metoda vă permite să imitați mediul din linia de comandă.

Cu toate acestea, un neajuns al metodelor sistemului de operare este că acestea copiază fișiere numai în directorul dvs. de lucru curent.

Pentru a utiliza os.system () metoda pe Windows:

import os
os.system ('copiați sursa.txt destinație.txt)

De asemenea, puteți utiliza dispozitivul încorporat xcopy Comanda terminalului Windows:

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

Pentru a utiliza os.sistem pe Linux, înlocuiți copie cu cp:

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

Cum să copiați fișiere folosind metoda os.popen

Pentru a utiliza această metodă, înlocuiți os.system () cu os.popen ().

Pe Windows, utilizați:

import os
os.popen ('copiați sursa.txt destinație.txt)

Așa cum am făcut cu os.system (), a inlocui copie cu cp pentru a utiliza această metodă pe Linux:

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

Cum să copiați fișiere cu modulul de subproces Python

Pe lângă metodele de mai sus, puteți utiliza și fișierul subproces () bibliotecă pentru a copia fișiere în Python:

importă subprocesul ca sp
sp.call ("copiați fișierul sursăDirecția fișier", shell = Adevărat)

Cu toate acestea, pe Linux, utilizați:

importă subprocesul ca sp
sp.call ("cp sourceFile destinationFile", shell = True)

subproces biblioteca folosește, de asemenea subprocess.check_out () metodă. Funcționează la fel subprocess.call () face:

importă subprocesul ca sp
sp.check_out ("copiați SourceFile destinationFile", shell = True)

În Linux, înlocuiți copie cu cp:

importă subprocesul ca sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)

Cu toate acestea, la fel ca metodele OS, metodele de subproces funcționează numai cu fișiere din directorul curent de lucru.

Notă: De asemenea, puteți copia fișiere într-un folder dacă se află în același director de lucru ca fișierul sursă. Tot ce trebuie să faceți este să înlocuiți numele fișierului de destinație cu numele folderului de destinație. Cu toate acestea, asigurați-vă că folderul de destinație și fișierul sursă se află în directorul curent de lucru.

Cum să copiați fișiere în Python fără a utiliza biblioteci

De asemenea, puteți copia fișiere în Python fără a depinde de nicio bibliotecă. La fel ca metoda shutil, aveți nevoie doar de căile complete ale directoarelor sursă și destinație.

Iată cum puteți realiza acest lucru:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
cu open (sourcePath, "rb") după cum se citește:
cu open (destinationPath, "wb") ca fișier meu:
myfile.write (read.read ())

La faceți codul reutilizabil, îl puteți modifica într-o funcție:

def CopyFile (sursă = Niciuna, destinație = Niciuna):
dacă nu (sursă și destinație) == Niciuna:
cu open (sursă, "rb") după cum se citește:
cu deschis (destinație, „wb”) ca fișierul meu:
myfile.write (read.read ())
altceva:
print („Vă rugăm să introduceți căile sursă și destinație”)
copyFile (sourcePath, destinationPath)

Asta este. Tocmai ați făcut un copiator de fișiere reutilizabil cu Python fără a utiliza nicio bibliotecă.

Continuați să automatizați sarcinile cu Python

Pe lângă faptul că vă ajută să vă concentrați asupra codului în timp ce creați proiecte, copierea fișierelor cu Python vă permite să înțelegeți mai bine gestionarea fișierelor cu Python. Cu toate acestea, jocul cu sarcinile Python este o modalitate de a vă îmbunătăți abilitățile Python, mai ales dacă sunteți începător.

De exemplu, puteți modifica data și ora pe computerul dvs. cu modulul os. Puteți scrie chiar comenzi bash personalizate cu Python, dacă doriți.

E-mail
Cum să creați propriile programe de linie de comandă în Python cu clic

Doriți să creați propriile programe Python din linia de comandă, dar vi se pare prea greu? Utilizați Click, un instrument Python util pentru a vă simplifica codul.

Subiecte asemănătoare
  • Programare
  • Piton
Despre autor
Idowu Omisola (56 articole publicate)

Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place, de asemenea, să se rupă de rutină din când în când. Pasiunea sa pentru a arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai multe.

Mai multe de la Idowu Omisola

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.