从 SFTP 服务器打开 Astropy FITS 文件

2024-02-22

我有一个 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.iofits.open method https://docs.astropy.org/en/stable/io/fits/api/files.html#astropy.io.fits.open接受类似文件的对象来代替文件名:

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


Paramiko 返回表示远程文件的类文件对象SFTPClient.open method https://docs.paramiko.org/en/latest/api/sftp.html#paramiko.sftp_client.SFTPClient.open:

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


所以这应该有效:

sftp_client = ssh_client.open_sftp()
with sftp_client.open('remote_filename') as remote_file:
    hdu = fits.open(remote_file)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 SFTP 服务器打开 Astropy FITS 文件 的相关文章

随机推荐