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
Code Vysvětlení
- 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.splitfunkce na zdrojové proměnné - Code při spuštění se vypíše „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“.
Code Vysvětlení
- 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
-
Code Řádek č. 15 – Uvádí den, datum, měsíc, rok a čas poslední úpravy souboru .txt (guru99). Pomocí modulu path získáme podrobnosti o čase úpravy souboru a poté 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.
-
Code Řádek č. 17 – Dělá totéž, poskytuje informace o úpravě souboru, ale má jiný formát pro jejich reprezentaci. 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)





