Python 如何删除符号链接和源目录

Python 如何删除符号链接和源目录,python,shell,directory,Python,Shell,Directory,我想删除符号链接和源目录 例如— ls -lrt testsymlink -> /user/temp/testdir 我想删除testsymlink和/user/temp/testdir。考虑到我只知道这个链接名称。< /P> 任何使用python的实用程序都会很好。您可以使用os.path.realpath的结果来检测和删除符号链接目标。例如: import os # ./foo -> ./bar filepath = "./foo" if (os.path.realpath

我想删除符号链接和源目录

例如—

ls -lrt
testsymlink -> /user/temp/testdir
我想删除
testsymlink
/user/temp/testdir
。考虑到我只知道这个链接名称。< /P>
任何使用python的实用程序都会很好。

您可以使用
os.path.realpath
的结果来检测和删除符号链接目标。例如:

import os

# ./foo -> ./bar
filepath = "./foo"

if (os.path.realpath(filepath) != filepath):
    targetpath = os.path.realpath(filepath)

os.remove(filepath)
if (targetpath):
     os.remove(targetpath)

编辑:我不认为您需要python解决方案:这一切只与unix shell相关。虽然您可以将下面的两个命令封装在一个
os.system()
调用中,但我强烈建议您按照Tim的答案进行操作

要获取符号链接指向的对象的路径,可以使用
readlink

$ readlink testsymlink
/user/temp/testdir
要删除符号链接指向的对象,可以将
readlink
的输出传递到
rm

$ rm -r `readlink testsymlink`
反勾号导致运行其中的命令,然后替换为自己的输出。最后,要删除符号链接本身,我们只需运行:

$ rm testsymlink

这个问题也被标记为
shell
,因此+1是一个同样好的解决方案。我只是不确定蒂姆下面的回答是否总是正确;-)@staticfloat—我正在寻找Python实用程序。两种解决方案都非常好。readlink对我来说是新事物。谢谢@卢卡斯:下面,上面,这些概念在强大的网络空间中毫无意义工作正常。谢谢蒂姆!