Копирайте файла в Python: метод shutil.copy(), shutil.copystat().
Python Методи за копиране на файлове
Python предоставя вградени функции за лесно копиране на файлове с помощта на Operating помощни програми System Shell.
Следната команда се използва за копиране на файл
shutil.copy(src,dst)
Следната команда се използва за копиране на файл с информация за метаданни
shutil.copystat(src,dst)
Как да копирате файл в Python
Ето стъпките за копиране на файл Python използвайки метода shutil copy():
Стъпка 1) Уловете оригиналния път в текущата директория
Преди да копираме файл, трябва да получим пътя до оригиналния файл в текущата директория. В кода –
- Деклариране на променлива
- Прилагане на функция за разделяне върху променлива
Обяснение на кода
- Първо ще проверим дали нашият файл “guru99.txt” съществува или не. Тъй като създадохме файла guru99.txt по-рано, знаем, че той съществува и ще продължим с кода
- Ние съхраняваме пътя на файла в променливата "SRC”, ако вашият файл съществува
- След като получим пътя, ще разделим пътя и името на файла
- За това ще използваме разделянето
path.split
функция върху изходна променлива - Кодът при изпълнение отпечатва „име на файла"А"файлова пътека” отделно
Стъпка 2) Създайте копие на нашия съществуващ файл с помощта на модула shutil
Използваме Shutil Module, за да създадем копие на съществуващия файл. Тук използвахме, за да създадем копие на нашия съществуващ файл „guru99.txt.“
Обяснение на кода
- Вземете оригиналното име на файла „guru99.txt“ и добавете букви .bak в края „guru99.txt.bak“. Това име с разширение .bak ще бъде нашето дублирано копие
- И тогава ще използваме функцията за копиране на помощната програма, за да копираме от източника до дестинацията
- Когато стартирате кода, ще видите дублиран файл с разширение .bak, създаден от дясната страна на панела
Стъпка 3) Копирайте метаданни, свързани с файла, разрешение за файл и друга информация
Функцията за копиране копира само съдържанието на файла, но не и друга информация. Да копирам мета-данни свързани с файла, разрешение за файл и друга информация, която трябва да използвате “copystat” функция. Преди да стартираме този код, трябва да изтрием нашия файл за копиране „guru99.text.bak“.
След като изтриете файла и стартирате програмата, тя ще създаде копие на вашия .txt файл, но този път с цялата информация като разрешение за файл, време за модификация и информация за метаданни. Можете да отидете в обвивката на вашата операционна система, за да проверите информацията.
Ето кода
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()
Стъпка 4) Извлечете информацията
Можете да извлечете информацията за последния модифициран текстов файл
-
Кодов ред №15- Показва деня, датата, месеца, годината и часа, когато .txt файлът (guru99) е бил последно модифициран. Използваме модула за път, за да получим подробности за времето за модификация на файла и след това ще използваме времеви класове c времева функция за да преобразувате това в четливо време. Така че, когато стартираме кода, можем да видим файла guru99.txt, на който последно е модифициран Пон, 8 януариth в 13:35 2018г.
-
Кодов ред №17 - Прави същото, като дава информация за модификацията на файла, но има различен формат, за да го представи. Тук използваме Вземете функцията за време за промяна (path.getmtime(“guru99.txt”)). Сега, вместо да използваме функцията c time, ще използваме От функцията Time Stamp и ще конструира обект за дата и час. В изхода можете да видите, че подробностите за времето за модификация на файла се отпечатват в различен формат 2018-01-08, 13:35:51.334072
Ето кода
# # 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()
Oбобщение
- За да създадете копие на съществуващия файл чрез използване на код shutil.copy (src,dst)
- За да копирате цялата информация от оригиналния файл в дублиран файл като разрешение за файл, време за модификация или информация за метаданни чрез използване на код shutil.copystat(src,dst)