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 -
- Ilmoitetaan muuttuja
- 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.split
toimintoa - 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)