首页 > 解决方案 > 如何读取二进制文件并将其转换为 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€</p>

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

×ï?V-²ïï?+‡ÙÎ÷ï? ÍÌL= ÿÿÍÌL= _ B €@
@@ 在此处输入图像描述

在下面的屏幕截图中,当我在 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 7 0 0 228 7 0 0 0 0 0 0

我怎样才能解码它以获得时间序列?

标签: pythondecodebinaryfiles

解决方案


推荐阅读