如何使用 paramiko 查看 gzip 文件的内容?
How can I see contents of gzip file with paramiko?
按如下方式连接到远程服务器后,
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
我可以 sftp.listdir()
并看到远程服务器上有一些 gzip 文件,例如 example.gz.2016
。如何通过 sftp 连接访问此文件的文本,而无需实际下载文件?
您的问题分为两部分:
- 如何从命令行查看 zip 文件的内容
- 如何执行远程命令并使用 python¶miko
获取输出
首先 首先要说的是:如何在控制台上列出一个 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()
按如下方式连接到远程服务器后,
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
我可以 sftp.listdir()
并看到远程服务器上有一些 gzip 文件,例如 example.gz.2016
。如何通过 sftp 连接访问此文件的文本,而无需实际下载文件?
您的问题分为两部分:
- 如何从命令行查看 zip 文件的内容
- 如何执行远程命令并使用 python¶miko 获取输出
首先 首先要说的是:如何在控制台上列出一个 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()