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