import shutil shutil.copystat(src, dst, *, follow_symlinks=True)
src
- исходное место/путь копируемого файла ,dst
- место/путь назначения нового файла,follow_symlinks=True
- что делать с символическими ссылками.Функция copystat()
модуля shutil
копирует биты прав доступа, время последнего доступа, время последней модификации и флаги из исходного места src
в место назначения dst
.
В Linux shutil.copystat()
также копирует "расширенные атрибуты", где это возможно.
Содержимое файла, владелец и группа не затрагиваются. Аргументы src
и dst
- это похожие на пути объекты или имена путей, заданные в виде строк.
Если аргумент follow_symlinks
имеет значение False
и оба src
и dst
ссылаются на символические ссылки, то shutil.copystat()
будет работать с самими символическими ссылками, а не с файлами, на которые ссылаются символические ссылки, считывая информацию из символической ссылки src
и записывая информацию в символическую ссылку dst
.
import os import shutil import time open('file.txt', 'w').close() time.sleep(10) def show_file_info(filename): stat_info = os.stat(filename) print(' Mode :', oct(stat_info.st_mode)) print(' Created :', time.ctime(stat_info.st_ctime)) print(' Accessed:', time.ctime(stat_info.st_atime)) print(' Modified:', time.ctime(stat_info.st_mtime)) open('file_to_change.txt', 'w').close() os.chmod('file_to_change.txt', 0o444) print('BEFORE:') show_file_info('file_to_change.txt') shutil.copystat('file.txt', 'file_to_change.txt') print('AFTER:') show_file_info('file_to_change.txt') # BEFORE: # Mode : 0o100444 # Created : Fri Apr 17 15:50:24 2020 # Accessed: Fri Apr 17 14:56:48 2020 # Modified: Fri Apr 17 14:56:48 2020 # AFTER: # Mode : 0o100664 # Created : Fri Apr 17 15:50:36 2020 # Accessed: Fri Apr 17 14:57:59 2020 # Modified: Fri Apr 17 15:49:16 2020