long int (m39 プライム) を取り、バイナリ ファイルとして保存しようとしています。bin 値をファイルに書き込もうとすると、文字列として書き込まれます。
>>> m39 = bin(2**13466917-1)
>>> open('m39', 'wb').write(m39)
madsc13ntist@jaberwock:~/Desktop$ xxd m39 | head
0000000: 3062 3131 3131 3131 3131 3131 3131 3131 0b11111111111111
0000010: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000020: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000030: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000040: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000050: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000060: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000070: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000080: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
これにはとてつもなく単純な答えがあると確信していますが、m39をbytearrayまたは書き込み用のバッファに変換することに成功していません。ioまたはmemoryviewなどを使用する必要がありますか?
どなたでもご利用いただけますので、どうぞよろしくお願いいたします。:)
私は Python 2.7.3 を使用していますが、可能な限り組み込みモジュールを使用したいと考えています。
編集: ディスク/メモリの占有スペースがはるかに少ないバイナリ ファイルとして値を保存しようとしています。bin 型が python の文字列であることは理解していますが、書き込もうとしています\x11\x11\x11\x11 not \x31\x31\x31\x31
。私の意図は、値の文字列表現を出力することではなく、後で使用/操作するために効率的に保存することです。