私は通常このようなことをC ++で行いますが、私はPythonを使って簡単なスクリプトを書いています。私は壁にぶつかりました。
私がバイナリリストを持っていれば(あるいは何かpythonが "fread"の結果を格納していれば)。私はバッファ内の個々のバイトにアクセスすることができます:buffer [0]、buffer [1]など
新しい32ビットのファイルサイズを保持するためにバイト[8-11]を変更する必要があります(読んでください:すでにファイルサイズがあり、それを更新する必要があります)。 C + +では、私はちょうど場所へのポインタを取得し、整数を格納するキャストが、私は突然、このような何かをする方法がわかりませんでした。
どうすれば私のバッファ内の特定の場所でPythonの整数の値を保持するために4バイトを更新できますか?
編集
私は解決策からそれを理解しているようには見えないので(私は彼らが正しい軌道にいることがわかりますが)、さらに追加します。
まず第一に、私はPython 2.4を使っています(そして、大企業のサーバをアップグレードすることはできません)。以前は言及してくれなかったことを申し訳ありません。
第二に、これを超簡単にしましょう。
私は、 'myfile.binary'という5バイトの内容 '4C53535353'という16進数のバイナリファイルを持っているとします。これはファイル内に "Lと4xS"という文字が1文字だけ表示されていることに相当します。
私が行った場合:
f = open('myfile.binary', 'rb')
contents = f.read(5)
内容は(Sven Marnachの答えから)5バイトの不変の文字列を保持すべきです。
Python 2.4の機能のみを使用して、どのように 'contents'に保持されている4 Sを任意の整数値に変更できますか?私。バイトインデックスの内容[1-4]に値12345678910の32ビット整数 'myint'を含めることができるコード行を私に与えてください。