Python 结构检查符号链接是否存在,如果存在则删除

Python 结构检查符号链接是否存在,如果存在则删除,python,django,fabric,Python,Django,Fabric,我正在使用fabric进行站点部署。部署时,我想检查我的项目是否存在于site enable中。如果存在,我想删除它。我猜我的站点在站点_中启用的是符号链接。我正在做一些类似于: vhost_check = '/etc/nginx/sites-enabled/%(project_name)s' % env print vhost_check if exists('-f {}'.format(vhost_check)): print "exists" sudo('rm -f {}

我正在使用fabric进行站点部署。部署时,我想检查我的项目是否存在于site enable中。如果存在,我想删除它。我猜我的站点在站点_中启用的是符号链接。我正在做一些类似于:

vhost_check = '/etc/nginx/sites-enabled/%(project_name)s' % env
print vhost_check

if exists('-f {}'.format(vhost_check)):
    print "exists"
    sudo('rm -f {}'.format(vhost_check))
但它仍然给我错误。我正在检查站点是否存在,如果不存在,我将在站点中创建我的项目。如果说我的网站已经存在,我会出错

我如何检查它是否存在,如果它存在,我想删除它。
谢谢

不确定您是否仍在搜索解决方案,因为一段时间过去了,但在这种情况下,这里有一个解决方案:

from fabric.api import sudo

vhost_check = '/etc/nginx/sites-enabled/%(project_name)s' % env


def check_symlink():
    """Check symlink and remove, if exist."""
    exists = sudo('test -f {vhost_check}'.format(vhost_check=vhost_check))

    if exists:
        print 'exists'
        sudo('rm {vhost_check}'.format(vhost_check=vhost_check))

    else:
       pass
你可以用 它已经内置在织物中。无需编写新方法即可完成此操作

为埃克斯梅普

from fabric.contrib.files import is_link
if is_link(vhost_check):
   sudo('rm %s' $vhost_check)
else:
   pass