各成分が16進数8桁で記載されたファイルを文字列のリストとして読み込んで、
そのリスト形状を変換した後に、文字列を16進数の数値に変換しようとしています。
下記コードの3行目までは、所望の動きをしているように見えるのですが、
4行目でエラーが発生します。
どのように書けば、16進数文字列を数値に変換してくれるのでしょうか。
■読み込んだファイル(data_hex.csv)
"21460000 0610105a 1a77780a0 8014a66b a167281f 0c0d0615"
"0aa43400 103a505a 5a66780a0 0015696b b1649819 8c0d7812"
"25523400 616a505a 8a55780a0 9011036b c6478814 2c0d0513"
"62707632 797a141a 2a24760a0 7014915b a961231f 580d0314"
python3
1a = np.loadtxt('data_hex.csv',delimiter='\t', dtype='unicode') 2x = a.reshape(-1, 2) 3x0, x1 = np.hsplit(x, 2) 4x0_i = [int(s, 16) for s in x0] 5
■エラー
int() can't convert non-string with explicit base
このようなエラーが出ますが、3行目・4行目間で str(x0)
を挿入しても同じ結果になるため、リスト成分自体は文字列なのかと思います…。
読み込み時のdtype='unicode'が悪いのかと思ったのですが、
それ以外で16進数を読み込むことができなかったためこの個所は調査できていないです。
■環境
jupyter notebook
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/12 12:23
2020/04/12 12:33