numpy fromfile使用远程paramiko SFTPFile连接

时间:2014-10-10 14:37:58

标签: python numpy paramiko

我在服务器上有一个二进制数据文件,我想用numpy读取。 我注意到我可以使用paramiko SSH2模块与文件建立远程SFTP连接,而不是登录服务器并在那里运行我的Python代码:

import paramiko

# get SSH connection to remote server (els039)
ssh_client=paramiko.SSHClient()
ssh_client.load_system_host_keys()
ssh_client.connect("els039")

# now get SFTP client connection:
sftp_client = ssh_client.open_sftp()

# get connection to remote file
rfile = sftp_client.open('2013041506.dat')

现在,我可以使用标准的Python文件读取函数来访问数据,但我不能使用Numpy来读取数据。例如,我想从这样的数据中读取3个数组(已知长度):

zdat = np.fromfile(rfile, dtype=">f8", count=zdat_len)
udat = np.fromfile(rfile, dtype=">f8", count=udat_len)
vdat = np.fromfile(rfile, dtype=">f8", count=vdat_len)

但是numpy不喜欢rfile属于paramiko.SFTPFile类型的事实。

有没有办法做我想做的事情 - 或者我应该将整个文件放到本地目录中?

1 个答案:

答案 0 :(得分:-1)

如果你想得到你想要的东西

那么你应该对numpy.fromfile()访问<fileObject>的{​​{1}}方法进行逆向工程来读取结构/数据单元格,并自己创建一个ad-hoc addOn,为{{1}创建一个子类。对象/实例方法。

如果您希望快速获得工作结果

然后您可能选择在paramiko.SFTPFile文件系统上下载(实例化)普通.dat - 文件实例,<localhost>和/或numpy.fromfile()标准方法可以过程&amp;以这种方式完成工作。