Python Glossary English

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

shutil.move()

деревья каталогов

Перемещает файл или каталог, как mv: в пределах одного диска переименовывает, между дисками — копирует и удаляет исходник.

Синтаксис

shutil.move(src, dst, copy_function=copy2) -> dst

В отличие от os.rename, move работает между файловыми системами и умеет класть в каталог: если dst — существующий каталог, src окажется внутри, и вернётся новый путь. Если же внутри уже есть объект с тем же именем, будет shutil.Error. Существующий файл dst на Unix перезаписывается молча, а на Windows это зависит от os.rename и может закончиться ошибкой. При переносе между дисками копия делается через copy2, поэтому долго и не атомарно: прерванный move оставляет полкопии.

Примеры

import os, shutil
os.mkdir('archive')
open('report.txt', 'w').close()
print(shutil.move('report.txt', 'archive'))  # → ? archive/report.txt — разделитель зависит от ОС
print(os.listdir('archive'))  # → ['report.txt']
open('report.txt', 'w').close()
try:
    shutil.move('report.txt', 'archive')
except shutil.Error as e:
    print(type(e).__name__)  # → Error

См. также

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

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