从SFTP服务器打开Astropy FITS文件

时间:2018-12-11 06:29:11

标签: python sftp paramiko astropy fits

我有一个使用Paramiko模块SSH到远程服务器的Python脚本。

以下是我的脚本

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("host", username="McMissile")

通常按以下方式打开本地计算机上的FITS文件:

from astropy.io import fits

hdu = fits.open('File.fits')

我想知道如何从SFTP服务器计算机打开FITS文件并将其存储在本地计算机中的变量hdu下。

由于存储限制,我无法将文件从服务器下载到本地计算机。

1 个答案:

答案 0 :(得分:3)

Astropy.io fits.open method接受类似文件的对象代替文件名:

  

名称:文件路径,文件对象,类似文件的对象或pathlib.Path对象


Paramiko SFTPClient.open method返回表示远程文件的类似文件的对象:

  

返回了一个类似文件的对象,它紧密模拟了普通Python文件对象的行为,包括可用作上下文管理器的能力。


所以这应该起作用:

sftp_client = ssh_client.open_sftp()
with sftp_client.open('remote_filename') as remote_file:
    hdu = fits.open(remote_file)