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





