Как проверить, стал ли текстовый файл больше? - PullRequest
0 голосов
/ 12 декабря 2018

Моя идея состояла в том, чтобы создать скрипт, в котором я запускаю несколько имен из списка, а затем сравниваю, если он находится в old_list.Если его нет в списке, мы выводим имя или вызываем функцию.В противном случае, если его нет в списке, я просто жду 5-15 секунд и снова проверяю, добавлено ли что-либо.

Однако моя проблема сейчас заключается в том, что у меня есть список со случайными именами:

names.txt

Craig  
Rebekah  
Zina  
Stella  
Zachary  
Ila  
Delsie  
Mauro  
Alba  
Antoniette
.... more

Используя этот скрипт:

def script():

    old_list = []
    old_names_list = [line.rstrip('\n') for line in open('names.txt')]


    while True:
        new_names_list = [line.rstrip('\n') for line in open('newnames.txt')]

        #if new name added to the list, then we call a random function,
        #for example: def hello() or we can just print out the name
        #and we continue to do the below.
        for names in old_names_list:

            if names not in old_list:
                print(names)
                #Call a random function etc def hello():
                old_list.append(names)

        else:
            randomtime = random.randint(5, 15)
            print('No new names fouund! - retrying in {} secs'.format(randomtime))
            time.sleep(randomtime)

newnames.txt

Rebekah  
Zina  
Stella  

Прямо сейчас он распечатывает все имена в списке, а затем добавляет его в old_list, и для следующего поиска в цикле for он не будет распечатывать имя, поскольку он находится внутри old_list.Однако я хочу, чтобы он проверял new_names_list, добавил ли он новое имя в список.Если это так, он должен найти, находится ли имя внутри names.txt, а затем распечатать добавленное имя.

Вывод:

Prints out all the names and continue the while True loop.

*Adding Craig to newnames.txt*

print("Found Craig in the old_list!")

continue to search if new names got added.

1 Ответ

0 голосов
/ 12 декабря 2018

Это то, что вы хотите?Он зацикливается навсегда, печатая все имена по мере их нахождения.

def script():
    old_names_list = [line.rstrip('\n') for line in open('names.txt')]
    while True:
        new_names_list = [line.rstrip('\n') for line in open('newnames.txt')]

        if not new_names_list == old_names_list: #if there is a change
            hell() #call that function
            for i in new_names_list:
                if not i in old_names_list:
                    print(i)
            old_names_list = new_names_list

        else: #no change
            print("no change")
            time.sleep(5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...