我想测试Python代码是否正确使用了符号链接。如何在基于Django command的伪造文件系统中以Python2 / 3兼容的方式创建符号链接(例如,等同于os.symlink()
的用法)?
答案 0 :(得分:1)
对于Python 3.x,pathlib
软件包位于标准库中。对于Python 2.7,您可以使用反向端口pathlib2
。
两个软件包都有一个.symlink_to(target, target_is_directory=False)
方法,该方法应该可以执行您想要的操作。
根据经验,Python 2不喜欢在Windows环境中建立符号链接,但是Python 3支持NTFS符号链接。 Linux乐于在其中任何一个中建立符号链接。我无法代表的其他环境。
这是一个示例用法
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!'