Hallo,
ich versuche gerade Binary-Daten in Python 2.7 zu schreiben. Dabei setze
ich die Daten erst in einem String zusammen und wandel diese dann mit
binascii um.
Das funktioniert auch fast immer. Aber nun bin ich ratlos.
Bei einer bestimmten String-Kombination wird 0x 0D eingefügt. Den Grund
verstehe ich aber nicht.
Im Hex-Editor lese ich dann 7 Byte (bc 20 01 20 20 0d 0a) anstatt wie
geplant 6 Byte. Wenn ich die Bin-Daten mit python auslese, sehe ich aber
auch nichts von 0x 0D. Nur eben im Hex-Editor und damit vielleicht auch
in einer anderen Software.
Was hat es damit auf sich?
1 | # -*- coding: utf-8 -*-
|
2 | import sys
|
3 | import os.path
|
4 | import binascii
|
5 |
|
6 | #h_block_sum = "012345" #working example
|
7 | h_test = "bc000100000abc000100000a" # writes bc000100000d0abc000100000d0a in file ???
|
8 | #h_block_sum = "bc000100001abc000100000a" # writes bc000100000abc000100000d0a in file ???
|
9 | hb=binascii.a2b_hex(h_test)
|
10 |
|
11 | try:
|
12 | outputfile = open('test.txt', 'w')
|
13 | outputfile.write(hb)
|
14 | finally:
|
15 | outputfile.close()
|
16 |
|
17 | # test content in python
|
18 | inputfile = open('test.txt', 'r')
|
19 | block = inputfile.read(20)
|
20 | str1 = ""
|
21 | for ch in block:
|
22 | str1 += hex(ord(ch))+" "
|
23 | print("Reading Test-Data: "+str1)
|
24 | inputfile.close()
|