Metódy kopírovania súborov v Pythone
Python poskytuje zabudované funkcie na ľahké kopírovanie súborov pomocou obslužných programov Shell operačného systému.
Nasledujúci príkaz sa používa na kopírovanie súboru
shutil.copy(src,dst)
Nasledujúci príkaz sa používa na kopírovanie súboru s informáciami MetaData
shutil.copystat(src,dst)
Tu sú kroky na kopírovanie súboru v Pythone
Krok 1) Predtým, ako skopírujeme súbor, musíme získať cestu k pôvodnému súboru v aktuálnom adresári. V kóde -
- Deklarujúca premenná
- Aplikácia split funkcie na premennú
Vysvetlenie kódu
- Najprv skontrolujeme, či náš súbor „guru99.txt“ existuje alebo nie. Pretože sme súbor guru99.txt vytvorili skôr, vieme, že existuje, a v kóde budeme pokračovať
- Uložíme cestu k súboru v premennej „ src “, ak váš súbor existuje
- Keď dostaneme cestu, oddelíme cestu a názov súboru
- Na to použijeme
path.split
funkciu split na zdrojovej premennej - Pri spustení kódu sa osobitne vytlačí „ názov súboru “ a „ cesta k súboru “
Krok 2) Používame modul Shutil na vytvorenie kópie existujúceho súboru. Tu sme vytvorili kópiu nášho existujúceho súboru „guru99.txt“.
Vysvetlenie kódu
- Vezmite pôvodný názov súboru „guru99.txt“ a na koniec „guru99.txt.bak“ pridajte písmená .bak. Toto meno s príponou .bak bude našou duplikátnou kópiou
- A potom použijeme funkciu kopírovania nástroja na kopírovanie zo zdroja do cieľa
- Po spustení kódu uvidíte, že na pravej strane panela sa vytvorí duplicitný súbor s príponou .bak.
Krok 3) Funkcia kopírovania kopíruje iba obsah súboru, ale žiadne ďalšie informácie. Ak chcete kopírovať metaúdaje spojené so súborom, povolenie súboru a ďalšie informácie, musíte použiť funkciu „ copystat “. Pred spustením tohto kódu musíme vymazať náš kopírovací súbor „guru99.text.bak“.
Po odstránení súboru a spustení programu sa vytvorí kópia vášho súboru .txt, tentokrát však so všetkými informáciami, ako sú povolenie súboru, čas úpravy a informácie o metaúdajoch . Informácie môžete overiť v prostredí svojho operačného systému.
Tu je kód
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()
Krok 4) Môžete načítať informácie o naposledy upravenom textovom súbore
- 15. riadok kódu - Uvádza deň, dátum, mesiac, rok a čas, kedy bol súbor .txt (guru99) naposledy upravený. Použijeme modul cesty na získanie podrobných časových údajov o úprave súboru a potom ich pomocou časovej funkcie c časová funkcia prevedieme na čitateľný čas. Takže keď sme sa spustiť kód, môžeme vidieť, že súbor guru99.txt bol naposledy zmenený na Mon, Jan 8 th v 13:35 2018.
- Riadok kódu č. 17 - Poskytuje informácie o úprave súborov to isté, ale má iný formát, ktorý ich predstavuje. Tu používame funkciu Získať čas úpravy (path.getmtime ("guru99.txt")). Teraz namiesto použitia funkcie času c použijeme funkciu From Time Stamp a zostrojíme objekt dátumu a času. Na výstupe môžete vidieť, ako sa čas úpravy súboru vytlačí v inom formáte 2018-01-08, 13:35: 51,334072
Tu je kód
## 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()
Zhrnutie
- Ak chcete vytvoriť kópiu existujúceho súboru, použite kód shutil.copy (src, dst)
- Ak chcete skopírovať všetky informácie z pôvodného súboru do duplikátu, ako je povolenie súboru, čas zmeny alebo informácie o metaúdajoch, použite kód shutil.copystat (src, dst)