Копіювати файл в Python: метод shutil.copy(), shutil.copystat().
Python Методи копіювання файлів
Python містить вбудовані функції для легкого копіювання файлів за допомогою Operaутиліти системної оболонки.
Наступна команда використовується для копіювання файлу
shutil.copy(src,dst)
Наступна команда використовується для копіювання файлу з метаданими
shutil.copystat(src,dst)
Як скопіювати файл Python
Ось кроки для копіювання файлу Python за допомогою методу shutil copy():
Крок 1) Захоплення початкового шляху в поточному каталозі
Перш ніж скопіювати файл, нам потрібно отримати шлях до оригінального файлу в поточному каталозі. У коді –
- Оголошення змінної
- Застосування функції розділення до змінної
Пояснення коду
- Спочатку ми перевіримо, чи існує наш файл «guru99.txt». Оскільки ми створили файл guru99.txt раніше, ми знаємо, що він існує, і ми продовжимо роботу з кодом
- Ми зберігаємо шлях до файлу в змінній "SRC», якщо ваш файл існує
- Отримавши шлях, ми розділимо шлях і ім’я файлу
- Для цього ми будемо використовувати розкол
path.split
функція над вихідною змінною - Під час виконання код виводить «ім'я файлу"І"шлях до файлу” окремо
Крок 2) Створіть копію нашого існуючого файлу за допомогою модуля shutil
Ми використовуємо модуль Shutil для створення копії існуючого файлу. Тут ми використовували для створення копії нашого існуючого файлу «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 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)