Копирайте файла в Python: метод shutil.copy(), shutil.copystat().

Python Методи за копиране на файлове

Python предоставя вградени функции за лесно копиране на файлове с помощта на Operating помощни програми System Shell.

Следната команда се използва за копиране на файл

shutil.copy(src,dst)

Следната команда се използва за копиране на файл с информация за метаданни

shutil.copystat(src,dst)

Как да копирате файл в Python

Ето стъпките за копиране на файл Python използвайки метода shutil copy():

Стъпка 1) Уловете оригиналния път в текущата директория
Преди да копираме файл, трябва да получим пътя до оригиналния файл в текущата директория. В кода –

  1. Деклариране на променлива
  2. Прилагане на функция за разделяне върху променлива

Копиране на файл в Python

Обяснение на кода

  • Първо ще проверим дали нашият файл “guru99.txt” съществува или не. Тъй като създадохме файла guru99.txt по-рано, знаем, че той съществува и ще продължим с кода
  • Ние съхраняваме пътя на файла в променливата "SRC”, ако вашият файл съществува
  • След като получим пътя, ще разделим пътя и името на файла
  • За това ще използваме разделянето path.split функция върху изходна променлива
  • Кодът при изпълнение отпечатва „име на файла"А"файлова пътека” отделно

Стъпка 2) Създайте копие на нашия съществуващ файл с помощта на модула shutil
Използваме Shutil Module, за да създадем копие на съществуващия файл. Тук използвахме, за да създадем копие на нашия съществуващ файл „guru99.txt.“

Копиране на файл в Python

Обяснение на кода

  • Вземете оригиналното име на файла „guru99.txt“ и добавете букви .bak в края „guru99.txt.bak“. Това име с разширение .bak ще бъде нашето дублирано копие
  • И тогава ще използваме функцията за копиране на помощната програма, за да копираме от източника до дестинацията
  • Когато стартирате кода, ще видите дублиран файл с разширение .bak, създаден от дясната страна на панела

Стъпка 3) Копирайте метаданни, свързани с файла, разрешение за файл и друга информация
Функцията за копиране копира само съдържанието на файла, но не и друга информация. Да копирам мета-данни свързани с файла, разрешение за файл и друга информация, която трябва да използвате “copystat” функция. Преди да стартираме този код, трябва да изтрием нашия файл за копиране „guru99.text.bak“.

Копиране на файл в Python

След като изтриете файла и стартирате програмата, тя ще създаде копие на вашия .txt файл, но този път с цялата информация като разрешение за файл, време за модификация и информация за метаданни. Можете да отидете в обвивката на вашата операционна система, за да проверите информацията.

Копиране на файл в Python

Ето кода

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) Извлечете информацията
Можете да извлечете информацията за последния модифициран текстов файл

Копиране на файл в Python

  • Кодов ред №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)