我想列出我的 sftp 服务器中的所有文件

问题描述 投票:0回答:1

我想列出我的服务器中的所有文件。但它像这样[]一样返回空。我能做些什么?我的代码有什么问题吗?我正在使用一个名为 paramiko 的模块。

command = "ls"

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port, username, password)

stdin, stdout, stderr = ssh.exec_command(command)
lines = stdout.readlines()
print(lines)
python python-3.x sftp paramiko
1个回答
0
投票

您的代码与SFTP无关。您正在

远程 shell
中执行 ls 命令。

要使用 SFTP 列出文件,请使用

SFTPClient.listdir_attr
:

sftp = ssh.open_sftp()
for entry in sftp.listdir_attr():
    print(entry.filename)

强制性警告:请勿使用

AutoAddPolicy
– 这样做您将失去针对 MITM 攻击的保护。正确的解决方案请参阅Paramiko“未知服务器”

© www.soinside.com 2019 - 2024. All rights reserved.