Для Python 3.x пакет pathlib
находится в стандартной библиотеке.Для Python 2.7 вы можете использовать backport pathlib2
.
Оба пакета имеют метод .symlink_to(target, target_is_directory=False)
, который должен делать то, что вы хотите.
Из опыта Python 2 не любит создавать символические ссылки в средах Windows, но Python 3 поддерживает символические ссылки NTFS.Линукс счастлив делать символические ссылки в любом из них.Другие среды, о которых я не могу говорить.
Вот пример использования
In [1]: from pathlib import Path
In [2]: Path('textfile.txt').write_text('hello world!')
Out[2]: 12
In [3]: print(list(Path('.').rglob('*.*')))
[PosixPath('textfile.txt')]
In [4]: Path('link-to-textfile.txt').symlink_to(Path('textfile.txt'))
In [5]: print(list(Path('.').rglob('*.*')))
[PosixPath('textfile.txt'), PosixPath('link-to-textfile.txt')]
In [6]: Path('link-to-textfile.txt').read_text()
Out[6]: 'hello world!'