Подтвердить что ты не робот

Копирование символической ссылки в Python

Я хочу скопировать файл src в пункт назначения dst, но если src оказывается символической ссылкой, сохраните ссылку вместо копирования содержимого файла. После выполнения копирования os.readlink должен возвращать то же самое для src и dst.

Модуль shutil имеет несколько функций, таких как copyfile, copy и copy2, но все они скопируют содержимое файла и не сохранят ссылку. shutil.move имеет правильное поведение, кроме того, что он удаляет исходный файл.

Есть ли встроенный способ в Python для выполнения копирования файла при сохранении символических ссылок?

4b9b3361

Ответ 1

Просто сделай

def copy(src, dst):
    if os.path.islink(src):
        linkto = os.readlink(src)
        os.symlink(linkto, dst)
    else:
        shutil.copy(src,dst)

shutil.copytree делает что-то подобное, но, как отметил senderle, он придирчив к копированию только каталогов, а не отдельных файлов.