Zkopírovat soubor do Python: metoda Shutil.copy(), Shutil.copystat().
Python Metody kopírování souborů
Python poskytuje vestavěné funkce pro snadné kopírování souborů pomocí Operanástroje System Shell.
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 metadat
shutil.copystat(src,dst)
Jak zkopírovat soubor do Python
Zde jsou kroky ke zkopírování souboru Python pomocí metody Shutil copy():
Krok 1) Zachyťte původní cestu v aktuálním adresáři
Než zkopírujeme soubor, musíme získat cestu k původnímu souboru v aktuálním adresáři. V kódu -
- Deklarování proměnné
- Použití funkce rozdělení na proměnnou
Vysvětlení kódu
- Nejprve zkontrolujeme, zda náš soubor „guru99.txt“ existuje nebo ne. Protože jsme dříve vytvořili soubor guru99.txt, víme, že existuje, a budeme pokračovat s kódem
- Cestu k souboru uložíme do proměnné “src“, pokud váš soubor existuje
- Jakmile získáme cestu, oddělíme cestu a název souboru
- K tomu použijeme rozdělení
path.split
funkce na zdrojové proměnné - Kód se po spuštění vytiskne „Název souboru"A"cesta k souboru“ samostatně
Krok 2) Vytvořte kopii našeho stávajícího souboru pomocí modulu Shutil
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 na konec „guru99.txt.bak“ přidejte písmena .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) Zkopírujte metadata spojená se souborem, oprávnění k souboru a další informace
Funkce kopírování zkopíruje pouze obsah souboru, ale žádné další informace. Kopírovat metadata spojené se souborem, oprávnění k souboru a další informace, které musíte použít “copystatfunkce “. Než spustíme tento kód, musíme smazat náš kopírovaný soubor „guru99.text.bak“.
Jakmile soubor smažete a spustíte program, vytvoří se kopie vašeho souboru .txt, ale tentokrát se všemi informacemi, jako je oprávnění k souboru, čas úpravy a informace o metadatech. Informace můžete ověřit v prostředí svého OS.
Zde je kód
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()
Krok 4) Získejte informace
Můžete načíst informace o naposledy upraveném textovém souboru
-
Řádek kódu #15 – říká den, datum, měsíc, rok a čas, kdy byl soubor .txt (guru99) naposledy upraven. K získání podrobností o čase úpravy souboru používáme modul cesty a pak použijeme časové třídy c funkce času převést to na čitelný čas. Takže když spustíme kód, můžeme vidět, že soubor guru99.txt byl naposledy upraven dne Po, 8. lednath ve 13:35 2018.
-
Řádek kódu č. 17 - Dělá totéž a poskytuje informace o úpravě souboru, ale má jiný formát, který je reprezentuje. Zde používáme Funkce Get Modification Time (cesta.getmtime(“guru99.txt”)). Nyní místo použití časové funkce c použijeme Z funkce Time Stamp a vytvoříme objekt data a času. Na výstupu můžete vidět, že je vytištěn detail času úpravy souboru v jiném formátu 2018-01-08, 13:35:51.334072
Zde je kód
# # 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()
Shrnutí
- Chcete-li vytvořit kopii existujícího souboru pomocí kódu Shutil.copy (src,dst)
- Chcete-li zkopírovat všechny informace původního souboru do duplicitního souboru, jako je oprávnění k souboru, čas úpravy nebo informace o metadatech pomocí kódu shutil.copystat(src,dst)