質問: f.readline() data.append(list1) print data ``` 普通に16進数の配列として取り出すにはどうしたらよいでしょうか? そもそも,テキストとして開こうとしているのが間違いなのでしょうか? 文字コードなどに詳しくないので,何が起きてるかさっぱりわかりません. よろしくお願いします.
回答: 元ファイルを SublimeText で開いたとき、このような画面で表示されたのではないでしょうか? !画像の説明をここに入力 このときSublimeTextは、そのファイルを**バイナリファイルとして**、1バイトを2桁の16進数で表示しています。強引にテキストとして表示した結果が、あなたのプログラムの実行結果や、メモ帳で開いたときに見えるものです。 ですから、冒頭の `R-AXIS-CS 1.0-2.0` というテキストを16進数で表示した結果が `522d 4158 4953 2d43 5320 312e 302d 322e 30` ということになります。 > > ヘッダー部だけをあらかじめ切り出し,拡張子をimgにしたファイルを使用していました. > > > 上記の画面で範囲選択してコピーすると、16進数表記の文字列としてコピーされます。それを通常のSublimeText等に貼り付けて保存すれば、**16進数表記のテキストファイル**になります。 Pythonで読み込むときではなく、切り出すときに形が変わっている、ということです。 ですから、バイナリのままPythonで読みこんで加工を行うか、前後に上記のような変換を行ったうえでPythonでテキストとして加工するか、どちらかになるでしょう。 なおSublimeTextでバイナリのまま切り出すには、次のような方法があるようです。 * バイナリモードの状態でいらない部分を削除して、名前を付けて保存 * 新しいタブに貼り付けて、 `File > Save with Encoding > Hexadecimal` で保存