Копировать файл в Python:метод Shutil.copy(), Shutil.copystat()
Методы копирования файла Python
Python предоставляет встроенные функции для простого копирования файлов с помощью утилит оболочки операционной системы.
Следующая команда используется для копирования файла
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). Мы используем модуль пути, чтобы получить информацию о времени модификации файла, а затем мы собираемся использовать time class c time function чтобы преобразовать это в удобочитаемое время. Таким образом, когда мы запускаем код, мы видим, что файл guru99.txt последний раз изменялся пн, 8 января го . в 13:35 2018 г.
- Строка кода № 17. Она делает то же самое, предоставляя информацию об изменении файла, но имеет другой формат для ее представления. Здесь мы используем функцию Получить время модификации. (path.getmtime («guru99.txt»)). Теперь вместо использования функции времени c мы будем использовать функцию From 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)
Python
- Типы данных Python
- Операторы Python
- Оператор передачи Python
- Аргументы функции Python
- Словарь Питона
- Файловый ввод-вывод Python
- Длина строки Python | Пример метода len()
- Метод Python String find() с примерами
- Python Проверить, существует ли файл | Как проверить, существует ли каталог в Python
- Python JSON:кодировать (дампы), декодировать (загружать) и читать файл JSON