如何从python知道sftp中的当前工作目录

Shi*_*dla 4 python sftp operating-system paramiko

我已经通过一些细节连接到 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)
Run Code Online (Sandbox Code Playgroud)

结果

['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'
Run Code Online (Sandbox Code Playgroud)

这里我正在做的是

  1. 试图找到 sftp 的当前工作目录

  2. 上面有一个文件列表,作为打印文件的结果,我正在尝试检查它们是文件夹还是文件,如果它们是我想进入 LifeBridge文件夹的文件夹

最后谁能让我知道以下内容

  1. 如何查看sftp当前工作目录
  2. 如何检查上面列表的结果是文件还是文件夹

Mar*_*ers 7

您正在寻找该.getcwd()方法

返回此 SFTP 会话的“当前工作目录”,由 paramiko 模拟。如果没有使用 设置目录chdir,则此方法将返回None

因此,在会话开始时,如果您需要当前工作目录,请先尝试 a .chdir('.')(change to current directory)。

.listdir()方法仅返回目录中项目的名称。如果您需要有关这些文件的更多信息,则需要改用该.listdir_attr()方法,它返回一个SFTPAttributes实例列表。

一个SFTPAttributes实例通过.st_mode属性告诉您文件具有什么模式。使用该stat.S_ISDIR(mode)函数测试文件是否为目录。