Skopiuj plik do Python: metoda shutil.copy(), shutil.copystat().
โก Inteligentne podsumowanie
Python Kopiuje pliki za pomocฤ moduลu shutil. Funkcja shutil.copy() duplikuje zawartoลฤ pliku, a shutil.copystat() kopiuje rรณwnieลผ uprawnienia, czas modyfikacji i metadane. Tutaj poznasz obie metody na przykลadzie krok po kroku.

Python Metody kopiowania plikรณw
Python udostฤpnia wbudowane funkcje umoลผliwiajฤ ce ลatwe kopiowanie plikรณw przy uลผyciu formatu Operauruchamianie narzฤdzi powลoki systemowej.
Do kopiowania pliku uลผywa siฤ nastฤpujฤ cego polecenia
shutil.copy(src,dst)
Poniลผsze polecenie sลuลผy do kopiowania pliku z informacjami metadanych
shutil.copystat(src,dst)
Jak skopiowaฤ plik do Python
Oto kroki, aby skopiowaฤ plik Python uลผywajฤ c metody Shutil copy():
Krok 1) Przechwyฤ oryginalnฤ
ลcieลผkฤ w bieลผฤ
cym katalogu
Zanim skopiujemy plik, musimy uzyskaฤ ลcieลผkฤ do oryginalnego pliku w bieลผฤ
cym katalogu. W kodzie โ
- Deklarowanie zmiennej
- Stosowanie funkcji podziaลu na zmiennej
Code Wyjaลnienie
- Najpierw sprawdzimy, czy nasz plik โguru99.txtโ istnieje, czy nie. Poniewaลผ wczeลniej utworzyliลmy plik guru99.txt, wiemy, ลผe istnieje i bฤdziemy kontynuowaฤ pracฤ z kodem
- ลcieลผkฤ pliku przechowujemy w zmiennej โsrcโ, jeลli Twรณj plik istnieje
- Gdy juลผ otrzymamy ลcieลผkฤ, oddzielimy ลcieลผkฤ i nazwฤ pliku
- W tym celu uลผyjemy podziaลu
path.splitfunkcja na zmiennej ลบrรณdลowej - Code po wykonaniu drukuje โNazwa pliku"I"ลcieลผka pliku" osobno
Krok 2) Utwรณrz kopiฤ naszego istniejฤ
cego pliku za pomocฤ
moduลu Shutil
Do utworzenia kopii istniejฤ
cego pliku uลผywamy moduลu Shutil. Tutaj tworzyliลmy kopiฤ naszego istniejฤ
cego pliku โguru99.txtโ.
Code Wyjaลnienie
- Weลบ oryginalnฤ nazwฤ pliku โguru99.txtโ i dodaj litery .bak na koลcu โguru99.txt.bakโ. Ta nazwa z rozszerzeniem .bak bฤdzie naszym duplikatem
- Nastฤpnie uลผyjemy funkcji kopiowania narzฤdzia, aby skopiowaฤ ze ลบrรณdลa do miejsca docelowego
- Po uruchomieniu kodu zobaczysz zduplikowany plik z rozszerzeniem .bak po prawej stronie panelu
Krok 3) Skopiuj metadane powiฤ
zane z plikiem, uprawnienia do pliku i inne informacje
Funkcja kopiowania kopiuje tylko zawartoลฤ pliku, ale ลผadnych innych informacji. Kopiowaฤ metadane powiฤ
zane z plikiem, uprawnienia do pliku i inne informacje, ktรณrych musisz uลผyฤ โkopistaโfunkcja. Zanim uruchomimy ten kod, musimy usunฤ
ฤ nasz plik kopii โguru99.text.bakโ.
Po usuniฤciu pliku i uruchomieniu programu utworzy siฤ kopia pliku .txt, ale tym razem ze wszystkimi informacjami, takimi jak uprawnienia do pliku, czas modyfikacji i informacje o metadanych. Moลผesz przejลฤ do powลoki systemu operacyjnego, aby zweryfikowaฤ informacje.
Oto kod
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) Zdobฤ
dลบ informacje
Moลผesz pobraฤ informacjฤ o ostatniej modyfikacji pliku tekstowego
-
Code Wiersz nr 15 โ Zawiera dzieล, datฤ, miesiฤ c, rok i godzinฤ ostatniej modyfikacji pliku .txt (guru99). Uลผywamy moduลu ลcieลผki, aby uzyskaฤ szczegรณลowe informacje o czasie modyfikacji pliku, a nastฤpnie uลผyjemy klasy czasu c funkcja czasu aby przekonwertowaฤ to na czytelny czas. Wiฤc kiedy uruchomimy kod, moลผemy zobaczyฤ, ลผe plik guru99.txt zostaล ostatnio zmodyfikowany pon., 8 styczniath o 13:35 2018.
-
Code Wiersz nr 17 โ Wykonuje to samo, podajฤ c informacje o modyfikacji pliku, ale ma inny format ich reprezentacji. Tutaj uลผywamy Pobierz funkcjฤ Czas modyfikacji (ลcieลผka.getmtime(โguru99.txtโ)). Teraz zamiast uลผywaฤ funkcji czasu c, ktรณrej uลผyjemy Z funkcji znacznika czasu i zamierzam skonstruowaฤ obiekt daty i godziny. Na wyjลciu widaฤ, ลผe szczegรณลy czasu modyfikacji pliku sฤ drukowane w innym formacie 2018-01-08, 13:35:51.334072
Oto kod
# # 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()





