按照以下方式连接到远程服务器后,
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
我可以sftp.listdir()
查看远程服务器上有一些gzip文件,例如example.gz.2016
。如何在不实际下载文件的情况下通过sftp连接访问该文件的文本?
答案 0 :(得分:1)
您的问题分为两部分:
首先首先:如何在控制台上列出zip文件的内容。
less
can look into zip files,因此在您的情况下,执行less example.gz.2016
应该会为您提供zip存档中的文件列表
第二:如何远程执行命令。
import paramiko
ssh = paramiko.SSHClient()
# next is needed if your keys are not yet known on the client.
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(HOST_NAME, username=USER, password=PASSWORD)
stdin, stdout, stderr = ssh.exec_command('less ' + zipfilename)
for line in stdout.readlines():
# here you will have your listing
print (line)
for errline in stderr.readlines():
# Don't forget to check the error output
print ('***', errline)
祝你好运!
修改强> 如果您需要与同一服务器的sFTP连接,则需要从此ssh连接中获取此连接
sftp = ssh.open_sftp()