Pythoni koopiamaterjal failidega shutil.copy (), shutil.copystat ()

Lang L: none (table-of-contents):

Anonim

Pythoni failide kopeerimise meetodid

Python pakub sisseehitatud funktsioone failide hõlpsaks kopeerimiseks, kasutades operatsioonisüsteemi kesta utiliite.

Järgmist käsku kasutatakse faili kopeerimiseks

shutil.copy(src,dst)

Järgmist käsku kasutatakse faili kopeerimiseks MetaData teabega

shutil.copystat(src,dst)

Siin on juhised faili Pythonis kopeerimiseks

Samm 1) Enne kopeerime faili, peame leidma tee originaalfaili praeguses kataloogis. Koodis -

  1. Muutuja deklareerimine
  2. Split-funktsiooni rakendamine muutujale

Koodi selgitus

  • Kõigepealt kontrollime, kas meie fail "guru99.txt" on olemas või mitte. Kuna oleme faili guru99.txt varem loonud, teame, et see on olemas, ja jätkame koodiga edasi
  • Kui teie fail on olemas, salvestame faili tee muutujasse " src "
  • Kui tee on kätte saadud, eraldame tee ja failinime
  • Selleks hakkame lähtemuutuja puhul kasutama split- path.splitfunktsiooni
  • Kood käivitamisel prindib eraldi välja " faili nimi " ja " faili tee "

Samm 2) Olemasoleva faili koopia loomiseks kasutame moodulit Shutil. Siin me kasutasime oma olemasoleva faili "guru99.txt" koopia loomist.

Koodi selgitus

  • Võtke algne failinimi "guru99.txt" ja lisage lõppu "guru99.txt.bak" tähed .bak. See laiendiga .bak saab olema meie eksemplar
  • Ja siis hakkame allikast sihtkohta kopeerimiseks kasutama utiliidi kopeerimisfunktsiooni
  • Koodi käivitamisel näete paneeli paremas servas duplikaadifaili laiendiga .bak

3. samm. Kopeerimisfunktsioon kopeerib ainult faili sisu, kuid muud teavet pole. Kopeerida meta-andmed , mis on seotud, faili loata ja muu teave, mida selleks kasutada " copystat " funktsiooni. Enne selle koodi käivitamist peame kustutama oma koopiafaili "guru99.text.bak".

Kui olete faili kustutanud ja programmi käivitanud, loob see teie .txt-faili koopia, kuid seekord kogu teabe, näiteks faili loa, muutmisaja ja metaandmete teabe . Teabe kinnitamiseks võite minna oma OS-i kestale.

Siin on kood

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()

4. samm. Saate hankida teavet viimati muudetud tekstifaili kohta

  • Koodirida nr 15 - see ütleb päeva, kuupäeva, kuu, aasta ja kellaaja, millal .txt-faili (guru99) viimati muudeti. Me kasutame tee moodulit faili muutmise aja üksikasjade saamiseks ja seejärel kasutame ajaklassi c time funktsiooni selle teisendamiseks loetavaks ajaks. Nii et kui me käivitada koodi, näeme faili guru99.txt Viimane muutmine E, 8. jaanuar th juures 13:35 2018.
  • Koodirida nr 17 - see teeb sama, andes teavet faili muutmise kohta, kuid selle esitamiseks on sellel erinev formaat. Siin kasutame funktsiooni Hangi muutmise aeg (path.getmtime ("guru99.txt")). Nüüd funktsiooni c time asemel kasutame funktsiooni From Time Stamp ja ehitame kuupäeva ja kellaaja objekti. Väljundis näete, et faili muutmise aja üksikasjad on erinevas vormingus välja trükitud 2018-01-08, 13: 35: 51.334072

Siin on kood

## 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()

Kokkuvõte

  • Olemasoleva faili koopia loomiseks kasutage koodi shutil.copy (src, dst)
  • Originaalfaili kogu teabe kopeerimiseks faili duplikaadiks, näiteks faililuba , muutmise aeg või metaandmete teave , kasutage koodi shutil.copystat (src, dst)