我需要检查是否在这个平台上我有符号链接支持或没有。我从Python的测试包中得到了这段代码。你知道吗
_can_symlink = None
def can_symlink():
global _can_symlink
if _can_symlink is not None:
return _can_symlink
symlink_path = TESTFN + "can_symlink"
try:
os.symlink(TESTFN, symlink_path)
can = True
except (OSError, NotImplementedError, AttributeError):
can = False
else:
os.remove(symlink_path)
_can_symlink = can
return can
这是最好的方法吗?我担心抛出异常不是因为我没有符号链接支持,而是因为没有足够的权限。因此,通过对权限执行额外的检查,这是否足以改进此代码?还是有更好的方法来检查?你知道吗
好吧,这是最好的办法。请注意,有些Microsoft文件系统支持符号链接,有些则不支持符号链接。当然,Linux和UNIX也是如此—如果在它们中安装了胖文件系统,则不支持符号链接。你知道吗
上面的代码有两个小问题:
我认为,添加权限检查可以解决这个问题,但是我认为最好列出支持符号链接的平台并检查当前的平台。你知道吗
它更简单,因为平台不会增加那么多。你知道吗
相关问题 更多 >
编程相关推荐