使用Paramiko在Python中列出与通配符匹配的SFTP服务器上的文件

Vij*_*jay 8 python ssh sftp glob paramiko

import paramiko

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('hostname', username='test1234', password='test')
path = ['/home/test/*.txt', '/home/test1/*.file', '/home/check/*.xml']
for i in path:

    for j in glob.glob(i):

        print j

client.close()
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 列出远程服务器上的通配符文件glob.glob。但glob.glob()不工作。

使用 Python 2.6。

远程服务器包含这些文件:/home/test1/check.file, /home/test1/validate.file,/home/test1/vali.file

任何人都可以请帮助解决这个问题。

Mar*_*ryl 10

glob不会神奇启动与远程服务器的工作,只是因为你有实例化SSHClient之前。

您必须使用 Paramiko API 来列出文件,例如SFTPClient.listdir

import fnmatch
Run Code Online (Sandbox Code Playgroud)
sftp = client.open_sftp()

for filename in sftp.listdir('/home/test'):
    if fnmatch.fnmatch(filename, "*.txt"):
        print filename
Run Code Online (Sandbox Code Playgroud)

如果更适合您的需要,您还可以使用正则表达式进行匹配。请参阅使用 Paramiko 的 SFTPClient 在远程路径中使用通配符


旁注:不要使用AutoAddPolicy. 这样做你会失去安全感。请参阅Paramiko“未知服务器”