Python 从SFTP服务器打开Astropy FITS文件

Python 从SFTP服务器打开Astropy FITS文件,python,sftp,paramiko,astropy,fits,Python,Sftp,Paramiko,Astropy,Fits,我有一个Python脚本,可以使用Paramiko模块将ssh连接到远程服务器 下面是我的剧本 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

我有一个Python脚本,可以使用Paramiko模块将ssh连接到远程服务器

下面是我的剧本

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

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

接受类似文件的对象来代替文件名:

名称:文件路径、文件对象、类文件对象或pathlib.path对象


Paramiko返回表示远程文件的类文件对象:

返回一个类似文件的对象,它与普通Python文件对象的行为非常相似,包括用作上下文管理器的功能


因此,这应该是可行的:

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

我可能误解了你的观点,但在我看来,宋承宪不是这么做的。如果希望本地计算机上的引用指向远程计算机上的文件,则必须在本地计算机上装载远程磁盘系统。Hey@MartinPrikryl提供的链接中使用的方法无法用于打开文件。我已经试过了。无论如何,谢谢你的努力。只要它有一个read方法并返回字节,它就应该可以工作。