Kopioi tiedosto sisään Python: shutil.copy(), shutil.copystat() -metodi
⚡ Älykäs yhteenveto
Python kopioi tiedostoja shutil-moduulilla. shutil.copy() kopioi tiedoston sisällön, kun taas shutil.copystat() kopioi myös käyttöoikeudet, muokkausajan ja metatiedot. Tässä opit molemmat menetelmät vaiheittaisen esimerkin avulla.
Python Kopioi tiedostomenetelmät
Python sisältää sisäänrakennetut toiminnot tiedostojen kopioimiseen helposti käyttämällä OperaSystem Shell -apuohjelmat.
Seuraavaa komentoa käytetään tiedoston kopioimiseen
shutil.copy(src,dst)
Seuraavaa komentoa käytetään kopioimaan tiedosto metadatatiedoilla
shutil.copystat(src,dst)
Kuinka kopioida tiedosto sisään Python
Tässä on vaiheet tiedoston kopioimiseksi Python käyttämällä shutil copy() -menetelmää:
Vaihe 1) Tallenna alkuperäinen polku nykyiseen hakemistoon
Ennen kuin kopioimme tiedoston, meidän on saatava polku alkuperäiseen tiedostoon nykyisessä hakemistossa. Koodissa -
- Muuttujan ilmoittaminen
- Split-funktion käyttäminen muuttujaan
Code Selitys
- Ensin aiomme tarkistaa, onko "guru99.txt" -tiedostomme olemassa vai ei. Koska olemme luoneet guru99.txt-tiedoston aiemmin, tiedämme sen olevan olemassa ja jatkamme koodin kanssa
- Tallennamme tiedostopolun muuttujaan "src", jos tiedostosi on olemassa
- Kun saamme polun, erotamme polun ja tiedostonimen
- Tätä varten aiomme käyttää jakoa
path.splittoiminto lähdemuuttujassa - Code suoritettaessa tulostuu ”tiedoston nimi"Ja"tiedostopolku" erikseen
Vaihe 2) Luo kopio olemassa olevasta tiedostostamme käyttämällä shutil-moduulia
Käytämme Shutil-moduulia luodaksemme kopion olemassa olevasta tiedostosta. Täällä loimme kopion olemassa olevasta tiedostostamme "guru99.txt".
Code Selitys
- Ota alkuperäinen tiedostonimi "guru99.txt" ja lisää kirjaimet .bak loppuun "guru99.txt.bak". Tämä nimi .bak-tunnisteella on kopiomme
- Ja sitten aiomme käyttää apuohjelman kopiointitoimintoa kopioidaksemme lähteestä kohteeseen
- Kun suoritat koodin, näet paneelin oikealla puolella luodun kaksoistiedoston .bak-tunnisteella.
Vaihe 3) Kopioi tiedostoon liittyvät metatiedot, tiedoston käyttöoikeudet ja muut tiedot
Kopioi-toiminto kopioi vain tiedoston sisällön, mutta ei muita tietoja. Kopioida metatiedot liittyy tiedostoon, tiedoston käyttöoikeuksiin ja muihin tietoihin, joita sinun on käytettävä "copystat”-toiminto. Ennen kuin suoritamme tämän koodin, meidän on poistettava kopiotiedostomme "guru99.text.bak".
Kun poistat tiedoston ja suoritat ohjelman, se luo kopion .txt-tiedostostasi, mutta tällä kertaa kaikki tiedot, kuten tiedostojen käyttöoikeudet, muokkausaika ja metatiedot. Voit tarkistaa tiedot siirtymällä käyttöjärjestelmän kuoreen.
Tässä on koodi
import os import shutil from os import path def main(): # make a duplicate of an existing file if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); #seperate the path from the filter head, tail = path.split(src) print("path:" +head) print("file:" +tail) #let's make a backup copy by appending "bak" to the name dst = src+".bak" # nowuse the shell to make a copy of the file shutil.copy(src, dst) #copy over the permissions,modification shutil.copystat(src,dst) if __name__=="__main__": main()
Vaihe 4) Hae tiedot
Voit hakea viimeksi muokatun tekstitiedoston tiedot
-
Code Rivi 15 - Se kertoo päivän, päivämäärän, kuukauden, vuoden ja kellonajan, jolloin .txt-tiedostoa (guru99) on viimeksi muokattu. Käytämme path-moduulia tiedoston muokkausajan selvittämiseen, ja sitten käytämme aikaluokat c aikafunktio muuntaaksesi sen luettavaksi ajaksi. Joten kun suoritamme koodin, voimme nähdä, että tiedosto guru99.txt on viimeksi muokattu ma, tammikuun 8th klo 13:35 2018.
-
Code Rivi#17 - Se tekee saman asian ja antaa tietoja tiedostomuokkauksista, mutta sillä on eri muoto tiedon esittämiseksi. Tässä käytämme Hanki muokkausaikatoiminto (polku.getmtime("guru99.txt"). Nyt sen sijaan, että käytämme c-aikafunktiota, käytämme Aikaleima-toiminnosta ja aikoo rakentaa päivämäärä-aikaobjektin. Tulosteessa näet tiedoston muokkausajan yksityiskohdat tulostettuna eri muodossa 2018-01-08, 13:35:51.334072
Tässä on koodi
# # Example file for working with o.s path module import os from os import path import datetime from datetime import date, time, timedelta import time def main(): # Get the modification time t = time.ctime(path.getmtime("guru99.txt.bak")) print(t) print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak"))) if __name__ == "__main__": main()






