Как записать в текстовый файл, используя Python таким образом, чтобы я мог читать его одновременно в терминале / gnuplot - PullRequest
0 голосов
/ 09 марта 2020

Я запускаю длинную Python программу, которая печатает значения в файл .txt итеративным способом. Я пытаюсь прочитать значения с помощью терминальных команд "gedit / tail / less" и пытаюсь отобразить их в Gnuplot. Но я не могу прочитать файл .txt, пока не закончится все выполнение. Какой правильный аргумент для такой обработки файлов?

1 Ответ

0 голосов
/ 09 марта 2020

Файлы записываются, когда они закрыты или размер буфера слишком велик для хранения.

То есть, даже если вы используете file.write ("что-то"), что-то не записывается в файле, пока вы не закроете файл или блок не закончится.

with open("temp.txt","w") as w:
  w.write("hey")
  x=input("touch")
  w.write("\nhello")
  w.write(x)

запустите этот код и попробуйте прочитать файл до касания, он будет пустым, но после того, как закончится блок with, вы сможете увидеть содержимое.

Если вы собираетесь чтобы получить доступ к файлу из многих источников, вы должны быть осторожны с этим, а также не изменять его из нескольких источников.

РЕДАКТИРОВАТЬ: я забыл сказать, вы должны постоянно закрывать файл и открывать его в режиме добавления, если вы хотите, чтобы какая-то другая программа читала его во время записи в файл.

...