Главная » Статьи » Копирование файлов в Python с использованием shutil.copy(), shutil.copystat()

Копирование файлов в Python с использованием shutil.copy(), shutil.copystat()

Копирование файлов в Python с использованием shutil.copy(), shutil.copystat()

От автора: Python предоставляет встроенные функции для простого копирования файлов с помощью утилит операционной системы.

Следующая команда используется для копирования файла:

shutil.copy(src,dst)

Следующая команда используется для копирования файла с информацией метаданных:

shutil.copystat(src,dst)

Вот последовательность копирования файла в Python.

Шаг 1) Прежде чем мы скопируем файл, нам нужно получить путь к исходному файлу в текущем каталоге.

Объявляем переменную

Применяем функцию разделения к переменной

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

Сначала мы проверим, существует ли файл «guru99.txt» или нет. Поскольку мы создали файл guru99.txt ранее, мы знаем, что он существует, и мы продолжим работу с кодом

Мы сохраняем путь к файлу в переменной src,если файл существует

Когда мы получим путь, мы собираемся отделить путь и имя файла

Для этого мы будем использовать функцию path.split для исходной переменной

Код при выполнении выводит «имя файла» и «путь к файлу» отдельно

Шаг 2) Мы используем Shutil Module для создания копии существующего файла. Здесь мы использовали его для создания копии существующего файла «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(): # создаем дубликат существующего файла if path.exists("guru99.txt"): # получаем путь к файлу в текущем каталоге src = path.realpath("guru99.txt"); #выделяем путь из фильтра head, tail = path.split(src) print("path:" +head) print("file:" +tail) #давайте создадим копию, добавив к имени "bak" dst = src+".bak" # теперь используем оболочку, чтобы создать копию файла shutil.copy(src, dst) #копируем доступы, время изменения shutil.copystat(src,dst) if __name__=="__main__": main()

Шаг 4) Вы можете получить информацию о последнем изменении текстового файла.

Строка кода 15 сообщает день, дату, месяц, год и время последнего изменения файла .txt (guru99). Мы используем модуль path для получения сведений о времени изменения файла, а затем функцию time с классами времени, чтобы преобразовать ее в читаемое время. Поэтому, когда мы запускаем код, мы можем увидеть последнее изменение файла guru99.txt Mon, Jan 8th at 13:35 2018.

Строка кода 17 — она делает то же самое, предоставляя информацию о модификации файла, но имеет другой формат для ее представления. Здесь мы используем функцию Get Modification Time(path.getmtime(«guru99.txt»)). Теперь вместо использования функции времени мы собираемся использовать функцию From Time Stamp и получаем объект даты и времени. В выводе вы можете увидеть, что информация об изменении файла выводится в другом формате 2018-01-08, 13: 35: 51.334072

Вот код:

#
# Пример файла для работы модулем o.s path import os
from os import path
import datetime
from datetime import date, time, timedelta
import time def main(): # Получаем время изменения 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)

Источник: https://www.guru99.com

Редакция: Команда webformyself.