python - paramiko sftp 无法删除远程文件夹,ioerror

标签 python sftp paramiko

这是我的代码,用于使用 paramiko sftp 删除远程目录。

import paramiko

host = "192.168.1.13"
port = 22
transport = paramiko.Transport((host, port))

username = "root"
password = "abc123"

transport.connect(username = username, password = password)

sftp = paramiko.SFTPClient.from_transport(transport)

filepath = '/root/test_folder'
sftp.rmdir(filepath)

执行上面的代码会输出这个错误,

Traceback (most recent call last):
  File "autom_test.py", line 36, in <module>
    sftp.rmdir(filepath)
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 390, in rmdir
    self._request(CMD_RMDIR, path)
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 729, in _request
    return self._read_response(num)
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 776, in _read_response
    self._convert_status(msg)
  File "/usr/lib/python2.7/site-packages/paramiko/sftp_client.py", line 806, in _convert_status
    raise IOError(text)
IOError: Failure

当我对单个文件使用 sftp.remove(path) 时,情况并非如此。但是sftp.rmdir导致IOError

语法来自the documentation .

最佳答案

该错误是因为目标目录中有文件。 尝试递归删除。请参见下文。

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(host,username=username,password=password)

filepath="/root/test_folder"
cmd = "rm -rf "  + filepath

stdin, stdout, stderr = ssh.exec_command(cmd)
while not stdout.channel.exit_status_ready():
    time.sleep(5)

关于python - paramiko sftp 无法删除远程文件夹,ioerror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497041/

相关文章:

python - 将产品销售额 < 20 替换为 python Dataframe 相似组中销售额的平均值

python - 无法使用破折号打开本地主机

php - 使用 phpseclib 从远程服务器下载文件

php - 在 Phpseclib 中恢复下载

python - 从函数返回控制台对象后,paramiko/Socket 关闭

python - Foreach 循环使用 BeautifulSoup/Mechanize/Python 获取下一页链接

Android客户端使用SFTP发送文件

python - 在Python中,for循环一个文件来搜索另一个文件

Python Paramiko,权限错误: [Errno 13] Permission denied when get files from remote server

python - Django 查询以检索满足相关表聚合条件的行