如何用paramiko查看gzip文件的内容?

时间:2016-06-08 12:23:24

标签: python bash networking gzip paramiko

按照以下方式连接到远程服务器后,

transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)

我可以sftp.listdir()查看远程服务器上有一些gzip文件,例如example.gz.2016。如何在不实际下载文件的情况下通过sftp连接访问该文件的文本?

1 个答案:

答案 0 :(得分:1)

您的问题分为两部分:

  1. 如何从命令行查看zip文件的内容
  2. 如何使用python& paramiko
  3. 执行远程命令并获取输出

    首先首先:如何在控制台上列出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()