python - 从 SFTP 服务器打开 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 = 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/

相关文章:

python - Python 中的十进制模块不准确

linux - sftp 中 ftp 的 SITE 命令有什么替代方法

python - 在python中使用sftp从远程机器复制文件

python - 在Python中使用私钥通过SSH连接并查询Mongo数据库

python - 使用 Paramiko 在 Python 中使用 2FA 进行 SSH

python - cv.MinAreaRect2 和 ArcGIS(GIS 软件)之间的结果差异。可能的错误?

python - 单击()在 Selenium 中不起作用

python - 尝试导入 firebase 包时收到 .async 错误

php - SSH2 我做错了什么?

java - 如何将 FTP 服务器中的一个文件夹中的 CSV 文件移动到另一个文件夹?