объявить значение не там после х количество попыток - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь создать скрипт, в котором он проверяет текстовый файл и проверяет, содержат ли значения 'names' имена или нет после x количества попыток.

На данный момент мне удалось создать скрипт, который открывает текстовый файл, который содержит формат json. Я также добавил счетчик, который проверяет, являются ли имена пустыми после x попыток. Он объявит это как без имен. и если есть значение, он напечатает новые имена.

    text file:


{
    "name": "All new names",
    "url": "www.randomsite.com",
    "names": []
}



with open('./test.txt') as f:
        old_product_values = json.load(f)

    count = 0
    while True:



        with open('./test.txt') as f:
            new_product_values = json.load(f)

        print(new_product_values)

        if count == 10:
            no_names = True
            print('Declare value as No names')

        if not new_product_values['names']:
            count += 1
            time.sleep(1)

        else:
            print("NEW NAMES!")
            print(new_product_values['names'])

Что я ожидаю от следующих результатов, так это то, что, когда я не обнаруживаю никаких имен, я не сразу объявляю это как Без имен. Я хочу добавить один к счетчику каждый раз, но если этот счетчик достигнет х времени и т. Д. 10 раз Тогда я объявляю это, поскольку в текстовом файле нет имен. Но каждый раз, когда он обнаруживает добавленные новые имена, он должен распечатывать все имена только ОДИН РАЗ, а затем продолжать проверять, являются ли имена пустыми после x раз. Я хочу обнулять счетчик каждый раз, когда он находит новые имена. только длительные периоды без имен будут фактически считаться без новых имен.

1 Ответ

0 голосов
/ 13 января 2019
import json
import time

count = 0
last_names = []

while True:
    with open('./test.txt', 'r') as f:
        new_product_values = json.load(f)

    if not new_product_values['names']:
        count += 1
        time.sleep(1)
    elif new_product_values['names']!=last_names:
        print("NEW NAMES!")
        print(new_product_values['names'])
        last_names = new_product_values['names']

    if count == 10:
        no_names = True
        count = 0
        print('Declare value as No names')

Это должно удовлетворить ваши требования:

  1. Не выявлять имена 10 раз, а затем объявлять.

  2. При обнаружении новых имен выводите их только один раз.

  3. Сбрасывать счетчик каждый раз, когда он находит новые имена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...