-1

Pythonで、バイナリファイル(ここでは.chnファイルを読み取る必要があります)を読み取り、結果をバイナリ形式で表示するにはどうすればよいですか?

4

3 に答える 3

2

これを試して:

    with open('myfile.chn') as f:
        data=f.read()
        data=[bin(ord(x)).strip('0b') for x in data]
        print ''.join(data)

バイナリデータのみが必要な場合は、リストに表示されます。

    with open('myfile.chn') as f:
        data=f.read()
        data=[bin(ord(x)).strip('0b') for x in data]
        print data

これで、データに2進数のリストが表示されます。これを取り、16進数に変換できます

于 2012-04-25T08:00:49.727 に答える
2

値がスペースで区切られていると仮定します。

with open('myfile.chn', 'rb') as f:
    data = []
    for line in f:  # a file supports direct iteration
        data.extend(hex(int(x, 2)) for x in line.split())

Pythonでは、よりも使用open()する方が良いとfile()、ドキュメントには明示的に記載されています。

ファイルを開くときは、ファイルコンストラクターを直接呼び出すのではなく、open()を使用することをお勧めします。

rbmodeは、ファイルをバイナリモードで開きます。

参照:
http ://docs.python.org/library/functions.html#open

于 2012-04-25T07:44:25.470 に答える
0
with file('myfile.chn') as f:
  data = f.read()   # read all strings at once and return as a list of strings
  data = [hex(int(x, 2)) for x in data]  # convert to a list of hex strings (by interim getting the decimal value)
于 2012-04-25T07:32:17.363 に答える