2 Stimmen

Ersetzen einer Zeichenkette in einer Datei durch eine bestimmte Position

Ich habe eine Datei im Modus "ab+" geöffnet.

Was ich tun muss, ist das Ersetzen einiger Bytes in der Datei durch die Bytes einer anderen Zeichenfolge, so dass:

DATEI:

thisissomethingasperfectlygood.

String:

01234

So suche ich zum Beispiel die Position (4, 0) und möchte 01234 an die Stelle von "issom" in die Datei schreiben. Das letzte Auftreten wäre:

this01234ethingasperfectlygood .

Es gibt einige Lösungen im Netz, aber alle (zumindest die, die ich finden konnte) basieren auf "zuerst eine Zeichenfolge in der Datei suchen und dann durch eine andere ersetzen". Da mein Fall auf Suchen basiert, bin ich verwirrt über die Lösung.

2voto

sigjuice Punkte 26803

Sie können Ihre Datei mit mmap() abbilden und dann die Slice-Notation verwenden, um bestimmte Bytebereiche in der Datei zu aktualisieren. Das Beispiel aquí sollte helfen.

2voto

John La Rooy Punkte 278961

Sie können mmap dafür verwenden

import os,mmap
f=os.open("afile",os.O_RDWR)
m=mmap.mmap(f,0)
m[4:9]="01234"
os.close(f)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X