在Python中通过SFTP连接后如何列出目录中的所有文件夹和文件
我正在使用Python并尝试连接到SFTP,并希望从那里检索XML文件,并且需要将其放在我的本地系统中。下面是代码:
import paramikosftpURL = '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