如何在 Python 中读取二进制文件并将其转换为文本

问题描述

我有一个从 1946 年到 2020 年的仪表放电时间序列。该文件是二进制文件,如果我在文本编辑器中打开它,甚至在十六进制编辑器中,我会看到没有意义的值。我搜索了很多,找到了一些代码,但没有看到任何时间序列和值。

我可以想象时间序列是这样的: 这些值也是正确的并且在数据中。

t                Q
17.11.1972       8,66
04.02.2020       28,2

我复制了文件的开头部分:

@@4.00 à?š™™™™é?ÍÌÌÌÌÌì?ffffffî?¸…ëQ¸î?\Âõ(\ï?®Gáz®ï?×£p= ×ï?V-²ïï?§èH.ÿï?Sšä ÍÌL= ÿÿÍÌL= _ B €@
@@ NASIM26760601m³/sffûB°FAˆ¢A ¥¼x? §=,ðñ=ÿ9jŒA´¯DA;Âò@¿‡Ø½ =|?0¥‡=?1=ÿ]”:A þA ¨ï¿eV4@)¡? i3|?`d‹=ek=ÿ‘_î@5Ý@¼~DA ©]? cÂ{?Œ%¿=+>ÿÚÍ@%µ@À@•9AN? ýô{?h«=×Í=ÿð½¢@»MAòöî@ ¤¼x?¸~=Xä—=ÿ9jŒA +BAïÕ@yBѾ ‚Äw?èrÈ=¯k“=ÿ]”:A¼/±@>。 @„×9AG€

我复制了文件的最后一部分,因为我知道肯定有2020年的时间放电。也许它在文件的末尾。

×ï?V-²ïï?+‡ÙÎ÷ï? ÍÌL= ÿÿÍÌL= _ B €@
@@

enter image description here

在下面的屏幕截图中,当我在 Notepad++ 中打开它时,您会看到数据。

这是我的python代码输出

with open("time-serie_1946 bis 2020.hqr","rb") as file:

     data = file.read()

with open("out.txt","w") as f:
   f.write(" ".join(map(str,data)))
   f.write("\n")

输出开始:

6 64 64 52 46 48 48 10 0 0 0 0 0 0 0 224 63 154 153 153 153 153 153 233 63 205 204 204 204 204 204 236 63 102 102 102 102 102 102 238 63 184 30 133 235 81 184 238 63 92 143 194 245 40 92 239 63 174 71 225 122 20 174 239 63 215 163 112 61 10 215 239 63 86 14 45 178 157 239 239 63 30 167 232 72 46 255 239 63 83 78 101 117 98 101 114 101 99 104 110 117 110 103 32 98 105 115 32 50 48 50 48 32 109 105 116 32 117 110 98 101 115 116 228 116 105 103 116 101 110 32 72 81 32 118 111 110 32 49 57 52 54 45 49 57 55 50 32 40 65 110 102 114 97 103 101 32 83 99 104 117 104 109 97 99 104 101 114 44 32 84 82 41 154 0 0 2 0 0 7 0 0 2 8 p

如何解码以获取时间序列?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)