Comment implémenter la mémoire partagée en Python (mmap.mmap)

1. Objet

Je souhaite modifier les variables à l'intérieur du code en y accédant de l'extérieur lors de l'exécution du code Python.

2 Sommaire

Je veux accéder et changer la variable a de l'extérieur lors de l'exécution du code Python. Considérez le code (test1.py) qui stocke toujours le contenu du fichier texte "TEST.txt" dans la variable a comme indiqué ci-dessous. Même si le contenu de TEST.txt est modifié pendant l'exécution de test1.py, la valeur de la variable a dans test1.py n'est pas mise à jour. (La valeur de TEST.txt avant la modification demeure)

54.JPG

3 Que faire

Lisez le contenu de TEST.txt en mémoire. test1.py et test2.py partagent la mémoire. test1.py lit la valeur de la mémoire dans la variable a. test2.py change la valeur de la mémoire. Chaque fois que test1.py est exécuté, la valeur est lue dans la mémoire et stockée dans la variable a. Lorsque test2.py est exécuté, la valeur de la mémoire est modifiée et test1.py lit la valeur mise à jour dans test2.py.

55.JPG

56.JPG

4 code

Vous trouverez ci-dessous le code qui implémente le comportement ci-dessus. Utilisez mmap.mmap-> Vous pouvez stocker le contenu du fichier lu en mémoire.

Veuillez conduire test2.py après avoir d'abord exécuté test1.py.

/test1.py



import mmap
with open("example.txt", "r+b") as f:
       #mmap.mmap(fileno, length[, tagname[, access[, offset]]])Mappe les octets de longueur du fichier spécifié.
       #Si la longueur est 0, la longueur maximale de la carte est la taille actuelle du fichier.
    mm = mmap.mmap(f.fileno(), 0) #Lisez le contenu du fichier et écrivez-le dans mm. mm est une chaîne de bits"01010101..." //mmap.mmap(fileno, length[, tagname[, access[, offset]]])
    while True:
        mm.seek(0) #Lire la mémoire mm de la tête(seek(0)), Enregistrez la valeur lue en mm.
        mode=mm.readline() #Ecrivez le contenu de la mémoire mm en mode variable.
        print(mode)

/test2.py


import mmap

with open("example.txt", "r+b") as f:
#Lisez le contenu du fichier et écrivez-le dans mm. mm est une chaîne de bits"01010101..."
    mm = mmap.mmap(f.fileno(), 0)  
#Mémoire mm b"01"Réécrivez dans. exemple exemple.La longueur des données txt étant de 2, spécifiez la longueur des données à écrire avec 2. exemple exemple.Les données d'une longueur différente des données txt ne peuvent pas être écrites.
    mm[:] = b"01"  

/example.txt


#Veuillez écrire les données en binaire. Pour écrire en mémoire
00

Recommended Posts

Comment implémenter la mémoire partagée en Python (mmap.mmap)
Comment développer en Python
[Python] Comment faire PCA avec Python
Comment collecter des images en Python
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment gérer le japonais avec Python
Comment implémenter Python EXE pour Windows avec le conteneur Docker
J'ai essayé d'implémenter PLSA en Python
[Introduction à Python] Comment utiliser la classe en Python?
J'ai essayé d'implémenter la permutation en Python
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
[Itertools.permutations] Comment créer une séquence en Python
J'ai essayé d'implémenter PLSA dans Python 2
Comment implémenter un sérialiseur imbriqué avec drf-flex-fields
Comment utiliser BigQuery en Python
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé d'implémenter PPO en Python
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python
Comment utiliser les expressions régulières en Python
Comment afficher Hello World en python
Comment utiliser is et == en Python
Comment écrire Ruby to_s en Python
Comment vérifier la taille de la mémoire d'une variable en Python
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Comment gérer les fuites de mémoire dans matplotlib.pyplot
Comment utiliser la bibliothèque C en Python
Essayez d'implémenter Oni Mai Tsuji Miserable avec python
Comment recevoir des arguments de ligne de commande en Python
[REAPER] Comment jouer à Reascript avec Python
Comment effacer un taple dans une liste (Python)
Comment installer Python
Comment générer une séquence en Python et C ++
Comment implémenter la fonctionnalité de type helper Rails dans Django
Comment incorporer des variables dans des chaînes python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment créer un fichier JSON en Python
Mettre en œuvre des recommandations en Python
Comment installer python
Implémenter XENO avec python
Résumé de l'utilisation de MNIST avec Python
Comment implémenter un sélecteur de dégradé dans Houdini
Comment spécifier la version TLS dans les requêtes python
J'ai essayé d'implémenter TOPIC MODEL en Python
Comment notifier les canaux Discord en Python
Comment obtenir les fichiers dans le dossier [Python]