Учебники

21) Python COPY File

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

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

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

shutil.copy(src,dst)

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

shutil.copystat(src,dst)

Вот шаги, чтобы скопировать файл в Python

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

  1. Объявление переменной
  2. Применение функции разделения к переменной

Модуль Python OS, Команды Shell Script

Код Объяснение

  • Сначала мы проверим, существует ли наш файл «guru99.txt» или нет. Поскольку мы создали файл guru99.txt ранее, мы знаем, что он существует, и мы продолжим работу с кодом
  • Мы храним путь к файлу в переменной » src «, если ваш файл существует
  • Как только мы получим путь, мы собираемся отделить путь и имя файла
  • Для этого мы будем использовать path.splitфункцию split для исходной переменной
  • Код при выполнении выводит « имя файла » и « путь к файлу » отдельно

Шаг 2) Мы используем Shutil Module для создания копии существующего файла. Здесь мы использовали для создания копии нашего существующего файла «guru99.txt.»

Модуль Python OS, Команды Shell Script

Код Объяснение

  • Возьмите оригинальное имя файла «guru99.txt» и добавьте буквы .bak в конце «guru99.txt.bak». Это имя с расширением .bak будет нашей дубликатом
  • И тогда мы будем использовать функцию копирования утилиты для копирования из источника в место назначения
  • Когда вы запустите код, вы увидите дубликат файла с расширением .bak, созданный в правой части панели.

Шаг 3) Функция копирования только копирует содержимое файла, но не другую информацию. Чтобы скопировать метаданные, связанные с файлом, разрешением файла и другой информацией, вы должны использовать функцию « copystat ». Перед запуском этого кода мы должны удалить наш файл копии «guru99.text.bak».

Модуль Python OS, Команды Shell Script

После того как вы удалили файл и запустили программу, она создаст копию вашего файла .txt, но на этот раз со всей информацией, такой как разрешение файла, время изменения и информация метаданных . Вы можете перейти в свою оболочку ОС, чтобы проверить информацию.

Модуль Python OS, Команды Shell Script

Вот код

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()

Step 4) You can fetch the information about the text file last modified

Модуль Python OS, Команды Shell Script

  • Code Line#15- It tells the day, date, month, year and time when .txt file (guru99) was last modified. We use the path module to get the file modification time details, and then we are going to use the time classes c time function to convert that into a readable time. So when we run the code, we can see the file guru99.txt was last modified on Mon, Jan 8th at 13:35 2018.
  • Code Line#17- It does the same thing giving information about file modification, but it has a different format to represent it. Here we use Get Modification Time function (path.getmtime(«guru99.txt»)). Now instead of using the c time function we going to use From Time Stamp function and going to construct a date time object. In output, you can see file modification time detail is printed out in different format 2018-01-08, 13:35:51.334072

Here is the code

#
# 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)