2

'ab+'モードでファイルを開いています。

私がする必要があるのは、ファイル内のいくつかのバイトを次のような別の文字列のバイトに置き換えることです。

ファイル:

thisissomethingasperfectlygood.

ストリング:

01234

したがって、たとえば、位置(4、0)を探し、ファイルの「issom」の代わりに01234を書き込みたいと思います。最終的な外観は次のようになります。

this01234ethingasperfectlygood

ネット上にはいくつかの解決策がありますが、それらはすべて(少なくとも私が見つけたもの)は「最初にファイル内の文字列を見つけてから別の文字列に置き換える」ことに基づいています。私のケースはシークに基づいているので、解決策について混乱しています。

4

2 に答える 2

2

ファイルをmmap()してから、スライス表記を使用してファイル内の特定のバイト範囲を更新できます。ここの例が役立つはずです。

于 2009-10-20T10:13:51.873 に答える
2

そのためにmmapを使用できます

import os,mmap
f=os.open("afile",os.O_RDWR)
m=mmap.mmap(f,0)
m[4:9]="01234"
os.close(f)
于 2009-10-20T10:15:52.990 に答える