Ich möchte die Variablen innerhalb des Codes ändern, indem ich von außen auf sie zugreife, während ich den Python-Code ausführe.
Ich möchte von außen auf die Variable a zugreifen und diese ändern, während ich Python-Code ausführe. Betrachten Sie den Code (test1.py), der immer den Inhalt der Textdatei "TEST.txt" in der Variablen a speichert, wie unten gezeigt. Selbst wenn der Inhalt von TEST.txt während der Ausführung von test1.py geändert wird, wird der Wert der Variablen a in test1.py nicht aktualisiert. (Der Wert von TEST.txt vor der Änderung bleibt erhalten.)
Lesen Sie den Inhalt von TEST.txt in den Speicher. test1.py und test2.py teilen sich den Speicher. test1.py liest den Speicherwert in die Variable a. test2.py ändert den Wert des Speichers. Bei jeder Ausführung von test1.py wird der Wert aus dem Speicher gelesen und in der Variablen a gespeichert. Wenn test2.py ausgeführt wird, wird der Speicherwert geändert und test1.py liest den aktualisierten Wert in test2.py.
Unten finden Sie den Code, der das obige Verhalten implementiert. Verwenden Sie mmap.mmap-> Sie können den Inhalt der gelesenen Datei im Speicher speichern.
Bitte fahren Sie test2.py, nachdem Sie zuerst test1.py ausgeführt haben.
/test1.py
import mmap
with open("example.txt", "r+b") as f:
#mmap.mmap(fileno, length[, tagname[, access[, offset]]])Kartenlängenbytes aus der angegebenen Datei.
#Wenn die Länge 0 ist, entspricht die maximale Länge der Karte der aktuellen Dateigröße.
mm = mmap.mmap(f.fileno(), 0) #Lesen Sie den Inhalt der Datei und schreiben Sie ihn in mm. mm ist eine Folge von Bits"01010101..." //mmap.mmap(fileno, length[, tagname[, access[, offset]]])
while True:
mm.seek(0) #Speicher mm vom Kopf ablesen(seek(0)), Speichern Sie den gelesenen Wert in mm.
mode=mm.readline() #Schreiben Sie den Inhalt des Speichers mm in den variablen Modus.
print(mode)
/test2.py
import mmap
with open("example.txt", "r+b") as f:
#Lesen Sie den Inhalt der Datei und schreiben Sie ihn in mm. mm ist eine Folge von Bits"01010101..."
mm = mmap.mmap(f.fileno(), 0)
#Speicher mm b"01"Umschreiben an. Beispiel Beispiel.Da die Länge der txt-Daten 2 beträgt, geben Sie die Länge der Daten an, die mit 2 geschrieben werden sollen. Beispiel Beispiel.Daten mit einer anderen Länge als die txt-Daten können nicht geschrieben werden.
mm[:] = b"01"
/example.txt
#Bitte schreiben Sie die Daten binär. In den Speicher schreiben
00
Recommended Posts