Поиск в текстовом файле строки только в одной строке - PullRequest
1 голос
/ 13 июля 2020

В моей программе у меня есть список номеров идентификаторов в отдельном текстовом файле, по одному идентификатору на строку. Я использую оператор if для поиска, чтобы увидеть, есть ли уже указанный идентификатор в текстовом файле. Хотя шансы невелики, я хотел бы что-то реализовать, чтобы он не нашел строку, содержащуюся в нескольких строках. Вопрос: Как обеспечить, чтобы поиск по id = 11223 давал результат в строке 3, а не в строке 1/2? Включая простой пример ниже - в новинку, поэтому любые другие советы приветствуются, спасибо!

searching_for_id = "11223"
id_list = open('id_nums.txt', 'a+')

if searching_for_id not in open('tweet_id.txt').read():
    print("Adding to list")
    id_list.write("\nNew id")
else:
    print("Already in list")

Пример файла id.txt

12383 11

223 5869

12 11223

Примечание: большинство чисел еще не в текстовом файле, поэтому выражение not является «истинным» результатом. Не уверен, что это плохая практика кодирования, но думали, что перевод большей части программы go в оператор else займет больше времени?

1 Ответ

0 голосов
/ 13 июля 2020

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

file_ids = [int(line) for line in open('tweet_id.txt').readlines()]

Теперь вы можете безопасно сделать:

if searching_for_id in file_ids:
   print("id already exists in file")
else:
   print("id doesn't exist in file")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...