从 SFTP 服务器打开 Astropy FITS 文件

问题描述 投票:0回答:1

我有一个 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
下。

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

python sftp paramiko astropy fits
1个回答
3
投票

Astropy.io

fits.open
方法 接受类似文件的对象来代替文件名:

name:文件路径、文件对象、类文件对象或pathlib.Path对象


Paramiko

SFTPClient.open
方法返回表示远程文件的类文件对象:

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


所以这应该有效:

sftp_client = ssh_client.open_sftp() with sftp_client.open('remote_filename') as remote_file: hdu = fits.open(remote_file)
    
© www.soinside.com 2019 - 2024. All rights reserved.