Файл Python продолжает работать с предыдущим выводом - PullRequest
0 голосов
/ 21 марта 2019

Я пишу переводчик, который понимает английские команды, например, «скажем, Hello World». Код Python читает входные данные из стандартного ввода. У меня нет проблем с этим. Затем он переводит его в код Python и добавляет его в файл. Опять без проблем. Тогда у меня есть функция, которая запускает код в файле. Функция выглядит так:

def run(runfile):
   with open(runfile,"r") as rnf:
     exec(rnf.read())

Тогда я просто пишу:

run("file.py")

Затем я запускаю код в файле и моделирую вывод. Затем я открываю файл, как будто для записи в него, а затем закрываю его в конце программы (в последней строке), чтобы удалить содержимое файла следующим образом:

open("file.py", "w").close()

Проблема в том, что когда я набираю английские команды и запускаю файл, он работает правильно. Затем я набираю другую английскую команду, и она запускает вывод из предыдущего выполнения. Затем я запускаю его снова, и он работает правильно. Почему это происходит и как я могу это исправить? (Не стесняйтесь задавать вопросы о моем коде)

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Спасибо всем, но я исправил проблему, скомпилировав все это в строку, а затем используя exec().

0 голосов
/ 21 марта 2019

Вы должны убедиться, что вы не добавляете каждую команду, переданную в ваш файл. В этом случае (если вы добавляете данные с самого начала), он всегда начнет выполняться с предыдущих сохранений и продолжится.

...