私はFATFSモジュールを使ってセンサーデータをSDカードに書き込む組み込みソフトウェアプロジェクトに取り組んできました。データのデータ型はuint32_t(4バイト)で、出力はバイナリファイルです。ロギングデータのバイナリファイルを読み込んでint(python)で新しいファイルに出力
私は、バイナリファイルを読み込み(そして、データをintに解析して新しいファイルに書き込む)pythonスクリプトを書こうとしています。私の現在のコード、
def read():
with open("INPUT1.TXT", "rb") as binary_file:
# Read the whole file at once
data = binary_file.read()
print(data)
とそのヘクスでくれ値の塊を与え、
b' \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \t \n \x0b \
x0c \r \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17
\x18 \x19 \x1a \x1b \x1c \x1d \x1e \x1f \x01 \x02 \x03
\x04 \x05 \x06 \x07 \x08 \t \n \x0b \x0c \r \x0e \x0f
\x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1
b \x1c \x1d \x1e \x1f '
各4つのバイトを印刷する場合、いくつかの数字も、
f = open("INPUT2.TXT", "rb")
try:
bytes_read = f.read(4)
while bytes_read:
print(bytes_read)
bytes_read = f.read(4)
finally:
f.close()
所与の結果が欠落しています
b' ' #supposed to be \x00
b'\x01 '
b'\x02 '
b'\x03 '
b'\x04 '
b'\x05 '
b'\x06 '
b'\x07 '
b'\x08 '
b'\t ' #supposed to be \x09
b'\n ' #supposed to be \x0a
b'\x0b '
b'\x0c '
b'\r ' #supposed to be \x0d
b'\x0e '
b'\x0f '
b'\x10 '
b'\x11 '
b'\x12 '
b'\x13 '
b'\x14 '
b'\x15 '
b'\x16 '
b'\x17 '
b'\x18 '
b'\x19 '
b'\x1a '
b'\x1b '
b'\x1c '
b'\x1d '
b'\x1e '
b'\x1f '
しかし、whe n 16進エディタでバイナリファイルを読み込み、すべてのバイナリが正しいように見えますか?
一度に4バイトを読み込み、新しいファイル(型int)に書きたい場合、どうすればできますか?
おかげで、
ヘンリー
Python 2または3を使用していますか?若干の違いがあります。 – youngmit
あなたが私が教えてくれるものを見逃していないので、あなたが "欠けている"と思う理由を[this](http://www.asciitable.com/)にチェックしてください。 – jacoblaw
@youngmit私はPythonを使用しています3. – shjnlee