Скопировать файл в 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) Копирование метаданных, связанных с файлом, разрешением файла и другой информацией.
Функция копирования копирует только содержимое файла, но не другую информацию. Копировать мета-данные связанный с файлом, разрешениями на файл и другой информацией, которую вы должны использовать»копистат» функция. Прежде чем запустить этот код, нам нужно удалить файл копии «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 последний раз изменялся. Пн, янв 8th в 13:35 2018.
-
Строка кода № 17. Она делает то же самое, предоставляя информацию об изменении файла, но имеет другой формат для ее представления. Здесь мы используем Получить функцию времени модификации (path.getmtime("guru99.txt")). Теперь вместо использования функции времени c мы собираемся использовать Из функции отметки времени и собираюсь создать объект даты и времени. В выводе вы можете увидеть, что сведения о времени изменения файла распечатаны в другом формате. 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 (источник, dst)
- Чтобы скопировать всю информацию исходного файла в дубликат файла, например разрешение файла, время модификации или информация метаданных с помощью кода Shutil.copystat(src,dst)