Python Glossary English

все Python 3shutilфункция

shutil.copy2()

копирование файлов

Копирует файл и старается сохранить все метаданные: права, время доступа и изменения; dst может быть каталогом.

Синтаксис

shutil.copy2(src, dst, *, follow_symlinks=True) -> path

copy2 = copyfile + copystat, и именно её по умолчанию используют copytree() и move(). «Все метаданные» — преувеличение: владелец и группа, время создания на Windows и ACL не сохраняются. Время копируется с точностью файловой системы, поэтому сравнивать st_mtime через == между разными ФС (например, FAT) ненадёжно — допускайте погрешность в пару секунд.

Примеры

import os, shutil
open('a.txt', 'w').close()
os.utime('a.txt', (0, 1_000_000))
c1 = shutil.copy('a.txt', 'b.txt')
c2 = shutil.copy2('a.txt', 'c.txt')
print(os.stat(c1).st_mtime == 1_000_000)  # → False
print(os.stat(c2).st_mtime == 1_000_000)  # → True

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности