Articles

Kopier en fil i Python

i vores tidligere tutorials lærte vi nogle Python-filoperationer som læsning, skrivning og sletning. Lad os lære at kopiere en fil i Python i denne vejledning.

Vi kan kopiere en fil i Python ved hjælp af forskellige metoder under nedenstående moduler,

  • shutil modul
  • os modul
  • subprocess modul

i denne tutorial vil vi lære at bruge de forskellige metoder, der leveres af ovenstående moduler til at kopiere en fil i Python.

1. shutil modul til at kopiere en fil i Python

shutil modul giver nogle nemme at bruge metoder, som vi kan fjerne samt kopiere en fil i Python. Lad os se på de forskellige metoder, der er defineret under dette modul, der specifikt bruges til kopiering.

1. copyfileobj ()

copyfileobj() – metoden kopierer indholdet af kildefilen til målfilen ved hjælp af deres respektive filobjekter. Lad os se på koden nedenfor,

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

Bemærk: at filobjekterne skal pege på 0 positioner (startposition) for både de respektive kilde-og målfiler for at kopiere hele indholdet.

2. copyfile ()

copyfile() – metoden kopierer indholdet fra kilden til målfilen ved hjælp af filstierne. Det returnerer målfilstien. Målfilstien skal kunne skrives, ellers ville der forekomme en oserror-undtagelse.

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

det skal huskes, at metoden kun tillader brug af filstier og ikke mapper.

3. kopier ()

denne metode kopierer kildefilen til målfilen eller målmappen. I modsætning til copyfile() tillader metoden copy() brugen af målmappen som et argument og kopierer også filtilladelserne. copy() returnerer stien til målfilen efter kopiering af indholdet.

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

en fil med navnet ‘file.tekst ‘ oprettes i måldestinationen med alt indhold og tilladelser kopieret fra ‘/brugere/test/fil.tekst.

4. copy2 ()

copy2() metoden bruges nøjagtigt på samme måde som for copy() metoden. De fungerer også på samme måde, bortset fra det faktum, at copy2() kopierer også metadataene fra kildefilen.

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

2. os-modul til at kopiere en fil i Python

1. popen ()

popen() metode opretter et rør til kommandoen, cmd. Metoden returnerer et filobjekt, der er forbundet til cmd-røret. Se på koden nedenfor,

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

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

med denne metode kan vi ikke kun kopiere filer, men også udføre andre almindelige kommandoer.

2. system ()

system() – metoden kalder direkte og udfører et kommandoargument i en underskal. Dens returværdi afhænger af det operativsystem, der kører programmet. For vinduer er det returværdien af systemskallen.

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

3. underproces modul til at kopiere en fil i Python

1. opkald ()

call() metode svarende til os.system() direkte opkald eller kører kommandoen bestået som et argument til funktionen.

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