使用IDL函数作为引用读取Python中的二进制文件

2024-05-29 04:00:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python读取二进制文件。到目前为止,我已经使用了numpy.fromfile,但还不能确定结果数组的结构。我有一个IDL函数可以读取文件,所以这是我唯一要做的事情。我对IDL一无所知。在

以下IDL函数将读取文件并返回lc、zgrid、fnu、efnu等:

 openr,lun,'file.dat',/swap_if_big_endian,/get_lun
 s = lonarr(4) & readu,lun,s
 NFILT=s[0] & NTEMP = s[1] & NZ = s[2] & NOBJ = s[3]
 tempfilt = dblarr(NFILT,NTEMP,NZ)
 lc = dblarr(NFILT) ; central wavelengths
 zgrid = dblarr(NZ)
 fnu = dblarr(NFILT,NOBJ)
 efnu = dblarr(NFILT,NOBJ)
 readu,lun,tempfilt,lc,zgrid,fnu,efnu
 close,/all

但我不确定如何在Python中复制它。感谢任何帮助。谢谢。在

我不是在找翻译。我在找一个跳板,我可以试着解决这个问题。在


Tags: 文件函数idllcnzdblarrreadulun
1条回答
网友
1楼 · 发布于 2024-05-29 04:00:55

为了读取一个二进制文件(假设这是32位或者用户已经知道的东西),我将首先创建一个方法

    >>> a = '00011111001101110000101010101010'
    >>> int(a,2)
            523700906

也就是说,我们的方法必须从我们自己制作的东西中转换出来,比如:

^{pr2}$

下一步是创建一个合并binaryToAscii的方法,这样我们要么连接一些字符串,要么连接writing to a new file。这应该由用户决定。在

另外,如果不是以字符串形式检索二进制文件,那么there our built in methods that turn unicode characters into ascii values by taking in there unicode value (binary included)。在

关于文件的读取,可以使用the same link for reading and writing to a file。在

相关问题 更多 >

    热门问题