Python COPY -tiedosto käyttäen shutil.copy (), shutil.copystat ()

Sisällysluettelo:

Anonim

Python-kopiotiedostomenetelmät

Python tarjoaa sisäänrakennetut toiminnot tiedostojen kopioimiseksi helposti käyttöjärjestelmän kuoren apuohjelmien avulla.

Seuraavaa komentoa käytetään kopioimaan tiedosto

shutil.copy(src,dst)

Seuraavaa komentoa käytetään kopioimaan tiedosto MetaData-tiedoilla

shutil.copystat(src,dst)

Tässä on vaiheet tiedoston kopioimiseksi Pythonissa

Vaihe 1) Ennen kuin kopioimme tiedoston, meidän on saatava polku alkuperäiseen tiedostoon nykyisessä hakemistossa. Koodissa -

  1. Ilmoitetaan muuttuja
  2. Jaetun funktion soveltaminen muuttujaan

Koodin selitys

  • Ensin aiomme tarkistaa, että "guru99.txt" -tiedostomme on olemassa. Koska olemme luoneet guru99.txt-tiedoston aikaisemmin, tiedämme, että se on olemassa, ja jatkamme koodilla
  • Tallennamme tiedostopolun muuttujaan " src ", jos tiedostosi on olemassa
  • Kun saamme polun, aiomme erottaa polun ja tiedoston nimen
  • Tätä varten aiomme käyttää lähdemuuttujan split- path.splittoimintoa
  • Suoritettaessa koodi tulostaa " tiedostonimen " ja " tiedostopolun " erikseen

Vaihe 2) Luodaan kopio olemassa olevasta tiedostosta Shutil-moduulin avulla. Täällä me käytimme luomaan kopion olemassa olevasta tiedostostamme "guru99.txt".

Koodin selitys

  • Ota alkuperäinen tiedostonimi "guru99.txt" ja lisää kirjaimet .bak loppuun "guru99.txt.bak". Tämä nimi .bak-laajennuksella on kopiomme
  • Ja sitten aiomme käyttää apuohjelman kopiointitoimintoa kopioidaksesi lähteestä kohteeseen
  • Kun suoritat koodin, paneelin oikealle puolelle luodaan kaksoiskappale .bak-laajennuksella

Vaihe 3) Kopiointitoiminto kopioi vain tiedoston sisällön, mutta ei muita tietoja. Jos haluat kopioida tiedostoon liittyviä metatietoja , tiedoston käyttöoikeuksia ja muita tietoja, sinun on käytettävä " copystat " - toimintoa. Ennen kuin suoritamme tämän koodin, meidän on poistettava kopiotiedostomme "guru99.text.bak".

Kun olet poistanut tiedoston ja suorittanut ohjelman, se luo kopion .txt-tiedostostasi, mutta tällä kertaa kaikki tiedot, kuten tiedoston käyttöoikeudet, muokkausaika ja metadatatiedot . Voit siirtyä käyttöjärjestelmän kuoreen tarkistaaksesi tiedot.

Tässä on koodi

import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()

Vaihe 4) Voit noutaa tiedot viimeksi muokatusta tekstitiedostosta

  • Koodirivi # 15 - Se kertoo päivän, päivämäärän, kuukauden, vuoden ja ajan, jolloin .txt-tiedostoa (guru99) muokattiin viimeksi. Käytämme polkumoduulia tiedostojen muokkausajan yksityiskohtien saamiseen, ja sitten muunnamme sen luettavaksi ajaksi aikaluokat c aika -toiminnolla . Joten kun me suorittaa koodia, voimme nähdä tiedoston guru99.txt on viimeksi muutettu ma Jan 8 th klo 13:35 2018.
  • Koodirivi # 17 - Se tekee saman asian, joka antaa tietoja tiedoston muokkaamisesta, mutta sillä on erilainen muoto edustamaan sitä. Tässä käytämme Get Modification Time -toimintoa (polku.getmtime ("guru99.txt")). Sen sijaan, että käytämme c time -toimintoa, aiomme käyttää From Time Stamp -toimintoa ja rakentaa päivämäärä-aika-objektin. Lähdössä näet, että tiedoston muokkausaika on tulostettu eri muodossa 2018-01-08, 13: 35: 51.334072

Tässä on koodi

## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()

Yhteenveto

  • Luo kopio olemassa olevasta tiedostosta koodilla shutil.copy (src, dst)
  • Kopioida kaikki alkuperäisen tiedoston tiedot kopioimaan tiedosto, kuten tiedoston käyttöoikeus, muokkausaika tai metadatatiedot koodilla shutil.copystat (src, dst)