Articles

Kopioi tiedosto Python-kielellä

aiemmissa tutoriaaleissamme opeteltiin joitakin Python-tiedoston toimintoja, kuten lukemista, kirjoittamista ja poistamista. Opetellaan kopioimaan tiedosto Python tässä opetusohjelmassa.

voimme kopioida tiedoston Python-kielellä eri menetelmillä alla mainittujen moduulien alle,

  • shutil moduuli
  • osmoduuli subprocess moduuli

tässä opetusohjelmassa opetellaan edellä mainittujen moduulien tarjoamia eri menetelmiä tiedoston kopioimiseksi Python-kielellä.

1. Shutil moduli tiedoston kopioimiseksi Pythonilla

shutil moduuli tarjoaa joitakin helppokäyttöisiä menetelmiä, joilla voimme poistaa sekä kopioida tiedoston Pythonilla. Katsotaanpa tässä moduulissa määriteltyjä menetelmiä, joita käytetään erityisesti kopiointiin.

1. copyfileobj ()

copyfileobj() menetelmä kopioi lähdetiedoston sisällön kohdetiedostoon käyttäen omia tiedostoobjektejaan. Katsotaanpa alla olevaa koodia,

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

huomaa, että tiedostoobjektien tulisi osoittaa 0-paikkaa (aloituspaikkaa) sekä asianomaisille lähde-että kohdetiedostoille, jotta ne kopioisivat koko sisällön.

2. copyfile ()

copyfile() menetelmä kopioi sisällön lähteestä kohdetiedostoon tiedostopolkuja käyttäen. Se palauttaa kohdetiedoston polun. Kohdetiedoston polun on oltava kirjoitettava tai muuten tapahtuisi OSerror-poikkeus.

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

on pidettävä mielessä, että menetelmä mahdollistaa vain tiedostopolkujen käytön eikä hakemistojen.

3. kopioi ()

tämä menetelmä kopioi lähdetiedoston kohdetiedostoon tai kohdehakemistoon. Toisin kuin copyfile(), menetelmä copy() mahdollistaa kohdehakemiston käytön argumenttina ja myös kopioi tiedoston käyttöoikeudet. copy() palauttaa polun kohdetiedostoon sisällön kopioinnin jälkeen.

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

tiedosto nimeltä ” tiedosto.txt ’ on luotu kohdekohteeseen, jossa kaikki sisältö ja oikeudet on kopioitu ’/Users/test/file.txt”.

4. copy2 ()

copy2() menetelmää käytetään täsmälleen samalla tavalla kuin copy() menetelmää. Ne toimivat myös samalla tavalla, paitsi että copy2() kopioi myös metadatan lähdetiedostosta.

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

2. os-moduuli tiedoston kopioimiseen Python-kielellä

1. popen ()

popen() menetelmä luo komennolle putken, cmd. Menetelmä palauttaa cmd-putkeen liitetyn tiedostoobjektin. Katso alla oleva koodi,

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

tällä menetelmällä voidaan tiedostojen kopioimisen lisäksi suorittaa myös muita säännöllisiä komentoja.

2. järjestelmä ()

system() menetelmä kutsuu ja suorittaa komentoargumentin suoraan alikuoressa. Sen palautusarvo riippuu käyttöjärjestelmästä, joka suorittaa ohjelman. Linuxille se on exit-tila, kun taas Windowsille se on palautusarvo järjestelmän komentotulkin mukaan.

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

3. aliprosessointimoduuli tiedoston kopioimiseksi Python-kielellä

1. kutsu ()

call() menetelmä samanlainen kuin os.system() kutsuu tai ajaa funktiolle argumenttina välitetyn komennon suoraan.

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