Python COPY File using shutil.copy (), shutil.copystat ()

Metody kopírování souborů v Pythonu

Python poskytuje vestavěné funkce pro snadné kopírování souborů pomocí obslužných programů prostředí operačního systému.

Následující příkaz se používá ke kopírování souboru

shutil.copy(src,dst)

Následující příkaz se používá ke kopírování souboru s informacemi MetaData

shutil.copystat(src,dst)

Tady jsou kroky ke zkopírování souboru v Pythonu

Krok 1) Předtím, než zkopírujeme soubor, musíme získat cestu k původnímu souboru v aktuálním adresáři. V kódu -

  1. Deklarace proměnné
  2. Použití funkce rozdělení na proměnnou

Vysvětlení kódu

  • Nejprve zkontrolujeme, zda náš soubor "guru99.txt" existuje nebo neexistuje. Protože jsme soubor guru99.txt vytvořili dříve, víme, že existuje, a v kódu budeme pokračovat dále
  • Ukládáme cestu k souboru v proměnné " src ", pokud váš soubor existuje
  • Jakmile dostaneme cestu, oddělíme cestu a název souboru
  • K tomu použijeme path.splitfunkci split na zdrojové proměnné
  • Při spuštění kódu se samostatně vytiskne „ název souboru “ a „ cesta k souboru

Krok 2) K vytvoření kopie existujícího souboru používáme modul Shutil. Zde jsme vytvořili kopii našeho stávajícího souboru „guru99.txt“.

Vysvětlení kódu

  • Vezměte původní název souboru "guru99.txt" a přidejte písmena .bak na konec "guru99.txt.bak". Toto jméno s příponou .bak bude naší duplicitní kopií
  • A pak použijeme funkci kopírování nástroje ke kopírování ze zdroje do cíle
  • Po spuštění kódu uvidíte na pravé straně panelu vytvořený duplicitní soubor s příponou .bak

Krok 3) Funkce kopírování kopíruje pouze obsah souboru, ale žádné další informace. Chcete - li kopírovat metadata spojená se souborem, oprávnění k souboru a další informace, musíte použít funkci " copystat ". Před spuštěním tohoto kódu musíme odstranit náš kopírovací soubor „guru99.text.bak“.

Jakmile soubor odstraníte a spustíte program, vytvoří kopii vašeho souboru .txt, ale tentokrát se všemi informacemi, jako je oprávnění souboru, čas úpravy a informace o metadatech . Informace můžete ověřit v prostředí operačního systému.

Tady 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číst informace o naposledy upraveném textovém souboru

  • Řádek kódu # 15 - Sděluje den, datum, měsíc, rok a čas, kdy byl soubor .txt (guru99) naposledy upraven. Použijeme modul cesty k získání podrobných údajů o čase úpravy souboru a potom použijeme funkci časových tříd c time k převodu na čitelný čas. Takže když jsme se spustit kód, můžeme vidět, že soubor guru99.txt byl naposledy změněn na Mon, Jan 8 th v 13:35 2018.
  • Řádek kódu # 17 - Dělá totéž a poskytuje informace o úpravách souborů, ale má jiný formát, který ji reprezentuje. Zde používáme funkci Get Modification Time (path.getmtime ("guru99.txt")). Nyní namísto použití funkce c time použijeme funkci From Time Stamp a postavíme objekt data a času. Na výstupu vidíte, jak se čas úpravy souboru vytiskne v jiném formátu 2018-01-08, 13:35: 51,334072

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

souhrn

  • Chcete-li vytvořit kopii existujícího souboru pomocí kódu shutil.copy (src, dst)
  • Chcete-li zkopírovat všechny informace z původního souboru do duplikátu, jako je oprávnění souboru, doba modifikace nebo informace o metadatech pomocí kódu shutil.copystat (src, dst)

Zajímavé články...