在Python中通过SFTP连接后如何列出目录中的所有文件夹和文件

我正在使用Python并尝试连接到SFTP,并希望从那里检索XML文件,并且需要将其放在我的本地系统中。下面是代码:

import paramiko

sftpURL = 'sftp.somewebsite.com'

sftpUser = 'user_name'

sftpPass = 'password'

ssh = paramiko.SSHClient()

# automatically add keys without requiring human intervention

ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() )

ssh.connect(sftpURL, username=sftpUser, password=sftpPass)

ftp = ssh.open_sftp()

files = ftp.listdir()

print files

此处连接成功。现在,我想查看所有文件夹和所有文件,并需要输入所需的文件夹以从此处检索XML文件。

最后,我的目的是在连接到SFTP服务器后查看所有文件夹和文件。

在上面的代码中,我使用了以下代码ftp.listdir(),例如

['.bash_logout', '.bash_profile', '.bashrc', '.mozilla', 'testfile_248.xml']

我想知道是否只有这些文件?

我上面使用的命令也可以查看文件夹吗?

查看所有文件夹和文件的命令是什么?

回答:

一种快速的解决方案是检查中lstat的每个对象的输出ftp.listdir()

这是列出所有目录的方法。

>>> for i in ftp.listdir():

... lstatout=str(ftp.lstat(i)).split()[0]

... if 'd' in lstatout: print i, 'is a directory'

...

文件是相反的搜索:

>>> for i in ftp.listdir():

... lstatout=str(ftp.lstat(i)).split()[0]

... if 'd' not in lstatout: print i, 'is a file'

...

以上是 在Python中通过SFTP连接后如何列出目录中的所有文件夹和文件 的全部内容, 来源链接: utcz.com/qa/424027.html

回到顶部