Копирайте файла в 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

Code Обяснение

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

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

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

Code Обяснение

  • Вземете оригиналното име на файла „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

  • 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)

Обобщете тази публикация с: