Python 是否可以使用pysftp模块删除包含某些内容的目录?

Python 是否可以使用pysftp模块删除包含某些内容的目录?,python,python-2.7,python-3.x,sftp,pysftp,Python,Python 2.7,Python 3.x,Sftp,Pysftp,我正在使用pysftp模块创建备份脚本。我可以上传 下载文件。当我试图删除带有 我有个例外 这就是我试过的 错误:失败 有谁能给我建议一个解决这个问题的方法吗 rmdirremotepath在文档中找到rmdirremotepath在文档中找到我找到了一种方法。pysftp连接对象中有一个名为“execute”的方法。我们可以使用此方法在远程服务器上执行命令 con.execute('rm -rf /root/backup/data') con.listdir() [] 我已经找到办法了。py

我正在使用pysftp模块创建备份脚本。我可以上传 下载文件。当我试图删除带有 我有个例外

这就是我试过的

错误:失败

有谁能给我建议一个解决这个问题的方法吗


rmdirremotepath在文档中找到

rmdirremotepath在文档中找到

我找到了一种方法。pysftp连接对象中有一个名为“execute”的方法。我们可以使用此方法在远程服务器上执行命令

con.execute('rm -rf /root/backup/data')
con.listdir()
[]

我已经找到办法了。pysftp连接对象中有一个名为“execute”的方法。我们可以使用此方法在远程服务器上执行命令

con.execute('rm -rf /root/backup/data')
con.listdir()
[]
从目录中删除所有文件,然后使用rmdir删除空目录。对我有用

def clean_dir(sftp, dir, files):
    assert sftp.isdir(str(dir)), "Outbox does not exist!"
    assert files.is_dir(), "Source directory does not exist!"
    for capsule in list(files.iterdir()):
        target = dir / capsule.name
        assert sftp.exists(str(target)), "Target files does not exist!"
        sftp.remove(str(target))
        assert not sftp.exists(str(target)), "Removed file still exists!"
从目录中删除所有文件,然后使用rmdir删除空目录。对我有用

def clean_dir(sftp, dir, files):
    assert sftp.isdir(str(dir)), "Outbox does not exist!"
    assert files.is_dir(), "Source directory does not exist!"
    for capsule in list(files.iterdir()):
        target = dir / capsule.name
        assert sftp.exists(str(target)), "Target files does not exist!"
        sftp.remove(str(target))
        assert not sftp.exists(str(target)), "Removed file still exists!"

我已经试过了。rmdir在空目录上工作得很好,但在包含某些内容的目录上却失败了。您可以先删除dir中的每个对象,尽管这不是最好的解决方案,因为您的目录中可能包含其他目录。获得了一个方法>con。执行“rm-rf/root/backup/data”<@Stavros avramidis我已经尝试过了。rmdir在空目录上工作得很好,但在包含某些内容的目录上却失败了。您可以先删除dir中的每个对象,尽管这不是最佳解决方案,因为您的目录中可能包含其他目录。获得了一个方法>con.执行“rm-rf/root/backup/data”<@statros Avramidis