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 -
- Deklarace proměnné
- 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.split
funkci 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)