Kopeeri fail sisse Python: shutil.copy(), shutil.copystat() meetod
Python Failide kopeerimise meetodid
Python pakub sisseehitatud funktsioone failide hõlpsaks kopeerimiseks OperaSystem Shelli utiliidid.
Faili kopeerimiseks kasutatakse järgmist käsku
shutil.copy(src,dst)
Järgmist käsku kasutatakse metaandmetega faili kopeerimiseks
shutil.copystat(src,dst)
Kuidas faili sisse kopeerida Python
Siin on juhised faili kopeerimiseks Python kasutades shutil copy() meetodit:
Step 1) Jäädvustage algne tee praeguses kataloogis
Enne faili kopeerimist peame leidma praeguses kataloogis algse faili tee. Koodis -
- Muutuja deklareerimine
- Jagamisfunktsiooni rakendamine muutujale
Koodi selgitus
- Kõigepealt kontrollime, kas fail “guru99.txt” on olemas või mitte. Kuna oleme faili guru99.txt varem loonud, teame, et see on olemas ja jätkame koodiga
- Salvestame failitee muutujas "src", kui teie fail on olemas
- Kui oleme tee kätte saanud, eraldame tee ja failinime
- Selleks kasutame jaotust
path.split
funktsioon lähtemuutujal - Täitmisel prinditakse kood välja "faili nimi"Ja"faili teekond” eraldi
Step 2) Looge meie olemasolevast failist koopia, kasutades shutili moodulit
Kasutame Shutil moodulit olemasoleva faili koopia loomiseks. Siin kasutasime oma olemasoleva faili "guru99.txt" koopia loomist.
Koodi selgitus
- Võtke algne failinimi "guru99.txt" ja lisage "guru99.txt.bak" lõppu tähed .bak. See nimi laiendiga .bak on meie koopia
- Ja siis hakkame allikast sihtkohta kopeerimiseks kasutama utiliidi kopeerimisfunktsiooni
- Kui käivitate koodi, näete paneeli paremas servas duplikaatfaili laiendiga .bak.
Step 3) Kopeerige failiga seotud metaandmed, failiload ja muu teave
Kopeerimisfunktsioon kopeerib ainult faili sisu, kuid mitte muud teavet. Kopeerimiseks metaandmed seotud faili, faililoa ja muu teabega, mida peate kasutama "copystat” funktsioon. Enne selle koodi käivitamist peame kustutama oma koopiafaili “guru99.text.bak”.
Kui olete faili kustutanud ja programmi käivitanud, loob see teie .txt-failist koopia, kuid seekord kogu teabega, nagu faili luba, muutmise aeg ja metaandmete teave. Teabe kontrollimiseks võite minna oma OS-i kesta.
Siin on kood
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()
Step 4) Hankige teave
Saate hankida teavet viimati muudetud tekstifaili kohta
-
Koodirida#15 – see ütleb päeva, kuupäeva, kuu, aasta ja kellaaja, millal .txt-faili (guru99) viimati muudeti. Faili muutmise aja üksikasjade hankimiseks kasutame teemoodulit ja seejärel kasutame ajaklassid c ajafunktsioon et teisendada see loetavaks ajaks. Nii et kui me koodi käivitame, näeme faili guru99.txt, mida viimati muudeti Esmaspäev, 8. jaanth kell 13:35 2018.
-
Koodirida #17 – see annab sama asja, andes teavet faili muutmise kohta, kuid selle esitamiseks on erinev vorming. Siin kasutame Hankige muutmisaja funktsioon (path.getmtime("guru99.txt"). Nüüd hakkame kasutama c-ajafunktsiooni asemel Ajatempli funktsioonist ja konstrueerima kuupäeva-aja objekti. Väljundis näete, kuidas faili muutmise aja üksikasjad on välja trükitud erinevas vormingus 2018-01-08, 13:35:51.334072
Siin on kood
# # 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()
kokkuvõte
- Olemasolevast failist koopia loomiseks kasutage koodi shutil.copy (src,dst)
- Kogu algse faili teabe kopeerimiseks duplikaatfaili nagu faili luba, muutmise aeg või metaandmete teave kasutades koodi shutil.copystat(src,dst)