我已经连接到sftp了一些细节,用python从paramiko获取一些文件 和代码在
之下import paramiko
import os
import ftplib
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy() )
ssh.connect('sftp.example.com', username='user', password='pass')
ftp = ssh.open_sftp()
files = ftp.listdir()
print files,"----< Total files"
print ftp.cwd(),"---< Current working diectory"
for feedFile in files:
if feedFile == 'LifeBridge':
ftp.chdir(feedFile)
结果
['Emerson', 'Lehighvalley', 'LifeBridge', 'stmaryct'] ----< Total files
File "test_sftp.py", line 11, in <module>
print ftp.cwd() ---< Current working diectory
AttributeError: 'SFTPClient' object has no attribute 'cwd'
这里我正在做的是
试图找到sftp的当前工作目录
有一个文件列表,我在上面打印文件,我试图检查它们是文件夹还是文件,
如果他们是我想要输入LifeBridge
文件夹
最后任何人都可以告诉我以下内容
答案 0 :(得分:2)
您正在寻找.getcwd()
method:
返回此SFTP会话的“当前工作目录”,由paramiko模拟。如果没有使用
chdir
设置目录,则此方法将返回None
。
因此,在会话开始时,如果您需要当前正在运行的目录,请先尝试.chdir('.')
(更改为当前目录)。
.listdir()
方法仅返回目录中项目的名称。如果您需要有关这些文件的更多信息,则需要使用.listdir_attr()
method,而是返回SFTPAttributes
instances的列表。
SFTPAttributes
实例通过.st_mode
属性告诉您文件的模式。使用stat.S_ISDIR(mode)
function来测试文件是否是目录。