Python Glossary English

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

shutil.copymode()

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

Копирует биты прав доступа (chmod) с src на уже существующий dst; содержимое, владелец и время не трогаются.

Синтаксис

shutil.copymode(src, dst, *, follow_symlinks=True)

Файл dst должен уже существовать: copymode ничего не создаёт и не копирует данные — это просто chmod по образцу. Копируются только биты прав (rwx, а также setuid, setgid и sticky), владелец не меняется (для этого chown). На Windows из прав есть лишь флаг «только чтение», поэтому эффект там почти незаметен. Время изменения copymode не переносит — это делает copystat.

Примеры

import os, shutil
open('a.txt', 'w').close()
open('b.txt', 'w').close()
os.chmod('a.txt', 0o600)
shutil.copymode('a.txt', 'b.txt')
print(oct(os.stat('b.txt').st_mode & 0o777))  # → ? 0o600 — на Windows права другие
import shutil
open('a.txt', 'w').close()
try:
    shutil.copymode('a.txt', 'missing.txt')
except FileNotFoundError as e:
    print(type(e).__name__)  # → FileNotFoundError

См. также

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