So implementieren Sie Shared Memory in Python (mmap.mmap)

1. Zweck

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.

2 Inhalt

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.)

54.JPG

3 Was ist zu tun?

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.

55.JPG

56.JPG

4 Code

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

So implementieren Sie Shared Memory in Python (mmap.mmap)
Wie man in Python entwickelt
[Python] Wie man PCA mit Python macht
So sammeln Sie Bilder in Python
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Umgang mit Japanisch mit Python
So implementieren Sie Python EXE für Windows mit Docker-Container
Ich habe versucht, PLSA in Python zu implementieren
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Ich habe versucht, Permutation in Python zu implementieren
Dynamisches Definieren von Variablen in Python
So machen Sie R chartr () in Python
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Ich habe versucht, PLSA in Python 2 zu implementieren
So implementieren Sie einen verschachtelten Serializer mit drf-flex-Feldern
So arbeiten Sie mit BigQuery in Python
Wie bekomme ich Stacktrace in Python?
So zeigen Sie die neunundneunzig Tabelle in Python an
So extrahieren Sie einen Polygonbereich in Python
So überprüfen Sie die Version von opencv mit Python
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, PPO in Python zu implementieren
So wechseln Sie die Python-Version in Cloud9
So passen Sie den Bildkontrast in Python an
Verwendung von __slots__ in der Python-Klasse
So füllen Sie mit Python dynamisch Nullen aus
Verwendung regulärer Ausdrücke in Python
So zeigen Sie Hello World in Python an
Verwendung ist und == in Python
Wie schreibe ich Ruby to_s in Python
So überprüfen Sie die Speichergröße einer Variablen in Python
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
Umgang mit Speicherlecks in matplotlib.pyplot
Verwendung der C-Bibliothek in Python
Versuchen Sie, Oni Mai Tsuji Miserable mit Python zu implementieren
So empfangen Sie Befehlszeilenargumente in Python
[REAPER] Wie man Reascript mit Python spielt
So löschen Sie einen Taple in einer Liste (Python)
So installieren Sie Python
So generieren Sie eine Sequenz in Python und C ++
So implementieren Sie Rails-Helfer-ähnliche Funktionen in Django
Einbetten von Variablen in Python-Strings
Verwendung der Python-Bildbibliothek in der Python3-Serie
So erstellen Sie eine JSON-Datei in Python
So installieren Sie Python
Implementieren Sie XENO mit Python
Zusammenfassung der Verwendung von MNIST mit Python
So implementieren Sie eine Verlaufsauswahl in Houdini
So geben Sie die TLS-Version in Python-Anforderungen an
Ich habe versucht, TOPIC MODEL in Python zu implementieren
So benachrichtigen Sie Discord-Kanäle in Python
So erhalten Sie die Dateien im Ordner [Python]