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

Python Методи копіювання файлів

Python містить вбудовані функції для легкого копіювання файлів за допомогою Operaутиліти системної оболонки.

Наступна команда використовується для копіювання файлу

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 для створення копії існуючого файлу. Тут ми використовували для створення копії нашого існуючого файлу «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 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()

Підсумки

  • Щоб створити копію існуючого файлу за допомогою коду shutil.copy (src,dst)
  • Щоб скопіювати всю інформацію оригінального файлу в дублікат файлу, наприклад дозвіл на файл, час модифікації або інформацію про метадані за допомогою коду shutil.copystat(src,dst)