Articles

Copiați un fișier în Python

în tutorialele noastre anterioare, am învățat câteva operații de fișiere Python precum citirea, scrierea și ștergerea. Să învățăm să copiem un fișier în Python în acest tutorial.

putem copia un fișier în Python folosind diferite metode sub modulele menționate mai jos,

  • shutil modul
  • os modul
  • subprocess modul

în acest tutorial, vom învăța folosind diferitele metode furnizate de modulele de mai sus pentru a copia un fișier în Python.

1. modulul shutil pentru a copia un fișier în Python

shutil modulul oferă câteva metode ușor de utilizat, folosind care putem elimina, precum și copia un fișier în Python. Să ne uităm la diferitele metode definite în cadrul acestui modul utilizate în mod special pentru copiere.

1. copyfileobj ()

copyfileobj() metoda copiază conținutul fișierului sursă în fișierul țintă folosind obiectele de fișier respective. Să aruncăm o privire la codul de mai jos,

import shutilsrc_file_obj=open('src.txt', 'rb')targ_file_obj= open('targ.txt' , 'wb')shutil.copyfileobj( src_file_obj , targ_file_obj )

notă: că obiectele fișierului ar trebui să indice pozițiile 0 (poziția de pornire) atât pentru fișierele sursă, cât și pentru fișierele țintă respective, pentru a copia întregul conținut.

2. copyfile ()

metodacopyfile() copiază conținutul din sursă în fișierul țintă folosind căile de fișier. Returnează calea fișierului țintă. Calea fișierului țintă trebuie să poată fi scrisă sau altfel ar apărea o excepție OSerror.

import shutilshutil.copyfile( 'src.txt' , 'targ.txt' )

trebuie reținut faptul că metoda permite doar utilizarea căilor de fișiere și nu a directoarelor.

3. copy ()

această metodă copiază fișierul sursă în fișierul țintă sau în directorul țintă. Spre deosebire de copyfile(), metoda copy() permite utilizarea directorului țintă ca argument și copiază, de asemenea, permisiunile fișierului. copy() returnează calea către fișierul țintă după copierea conținutului.

import shutilshutil.copy('/Users/test/file.txt', '/Users/target/')

un fișier numit ‘fișier.txt ‘este creat în destinația țintă cu tot conținutul și permisiunile copiate din’ / Users/test / file.txt’.

4. copy2()

metoda copy2() este utilizată exact în același mod ca și metoda copy(). De asemenea, funcționează în același mod, cu excepția faptului că copy2() copiază și meta-datele din fișierul sursă.

import shutilshutil.copy2('/Users/test/file.txt', '/Users/target/')

2. modul os pentru a copia un fișier în Python

1. popen ()

popen() metoda creează o conductă la comanda, cmd. Metoda returnează un obiect fișier conectat la conducta cmd. Aruncati o privire la codul de mai jos,

#for Windowsimport osos.popen('copy src.txt targ.txt' )
#for Linuximport osos.popen('cp src.txt targ.txt' )

cu această metodă, nu numai că putem copia fișiere, dar, de asemenea, executa alte comenzi regulate.

2. sistem ()

metodasystem() apelează direct și execută un argument de comandă într-un subshell. Valoarea sa returnată depinde de sistemul de operare care rulează programul. Pentru Linux, este starea de ieșire, în timp ce Pentru Windows este valoarea returnată de shell-ul sistemului.

#for Linuximport osos.system(' cp src.txt targ.txt' )
#for Windowsimport osos.system(' copy src.txt targ.txt' )

3. modul subproces pentru a copia un fișier în Python

1. apel()

call() metodă similară cu os.system() apelează direct sau execută comanda transmisă ca argument funcției.

# In Linuximport subprocesssubprocess.call('cp source.txt target.txt', shell=True)