我有一个 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
下。
由于存储限制,我无法将文件从服务器下载到本地计算机。
最佳答案
Astropy.io fits.open
method接受类似文件的对象来代替文件名:
name : file path, file object, file-like object or pathlib.Path object
Paramiko SFTPClient.open
method 返回表示远程文件的类文件对象:
A file-like object is returned, which closely mimics the behavior of a normal Python file object, including the ability to be used as a context manager.
所以这应该有效:
sftp_client = ssh_client.open_sftp()
with sftp_client.open('remote_filename') as remote_file:
hdu = fits.open(remote_file)
关于python - 从 SFTP 服务器打开 Astropy FITS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53718571/