запись или чтение файла на основе оператора if - PullRequest
0 голосов
/ 13 октября 2019

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

вот мой код:

my_path = os.path.abspath(os.path.dirname(__file__))
path = os.path.join(my_path, "../etc/4532/7.txt")
checkw = open(path, "w+")
print(checkw.read())
if 'boot-state=True' in checkw.read():
    print("status: True")
    checkw.close()
else:
    print(checkw)
    print("sys:booting into img LOADER")
    os.system("~/master/root/xf10/__img-builder/./set.py")
    checkw.write("boot-state=True")

Заранее спасибо.

1 Ответ

0 голосов
/ 13 октября 2019

Здесь есть две проблемы:

  1. Вы открываете свой файл в режиме w+. Это перезаписывает ваш файл, если он существует. Если вы хотите прочитать существующий файл, используйте r или r+.
  2. Ваш print вызов в строке 4 перемещает указатель на конец файла. Поэтому следующий вызов чтения ничего не вернет. Попробуйте удалить отпечаток или позвоните checkw.seek(0,0), чтобы вернуться к началу файла.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...