Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/55: Рейтинг темы: голосов - 55, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 10.05.2019
Сообщений: 4

Поиск в файле по маске

10.05.2019, 10:52. Показов 11663. Ответов 6

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Имеется следующее задание: есть нормализованный файл с телефонными номерами, для примера в формате .txt в котором номера записаны в формате 79934350912 и так далее. Пользователем задается верхняя и нижняя граница маски номера для которой надо искать похожие номера. Допустим от 7 до 10. Т.е. в файле будут искаться все номера формата 7993435*, потом 79934350*, 799343509* и так далее, а затем группироваться и записываться в другой файл с количеством найденных номеров.

Вопрос состоит в следующем: как сделать поиск (проход по всем этим маскам)? Для примера набросал небольшой скрипт на python, который открывает файл и по введенному пользователем номеру выводит все похожие номера:

Python
1
2
3
4
5
6
7
8
9
10
myfile = open('numbers.txt')
info = myfile.readlines()
imp = input('Введите номер: ')
 
for items in info:
    val = items
    if any(imp in val for items in info):
        print(items)
 
myfile.close()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.05.2019, 10:52
Ответы с готовыми решениями:

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

Поиск по маске в большом текстовом файле
Возник вопрос, имеются текстовые файлы, содержащие от 300 000 строк, в них надо найти определенные слова, желательно по маске вида:...

Поиск в текстовом файле предложений, соответствующих маске
Задано маску, которая состоит из набора целых чисел. Каждое число определяет кол-во букв в соответствующем слове. Например: "1 3 7...

6
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
10.05.2019, 11:51
Python
1
2
>>> '79934350912'.startswith('7993435')
True
1
0 / 0 / 0
Регистрация: 10.05.2019
Сообщений: 4
10.05.2019, 13:29  [ТС]
Хорошо, а сюда
Python
1
startswith('7993435')
можно передать какое-то регулярное выражение, чтобы был проход по всем маскам?
0
0 / 0 / 0
Регистрация: 10.05.2019
Сообщений: 4
11.05.2019, 06:06  [ТС]
Рыжий Лис, спасибо за ответ. Поиск по начальной части телефона действительно более верный, чем проверка на содержание подстроки во всех строках.
Я просто не совсем могу понять как сделать проход по всем маскам. Т.е. сначала он нашел все 7999464*, потом 79994645* это уже следующий проход. Возможно, это можно реализовать топорно при помощи цикла, но мне кажется, что есть более 'изящное' решение.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
11.05.2019, 06:33
Не, циклом самый раз.
0
0 / 0 / 0
Регистрация: 10.05.2019
Сообщений: 4
12.05.2019, 12:31  [ТС]
Рыжий Лис, подскажите, пожалуйста. Никак не могу догадаться как сделать цикл так, чтобы проверялись сначала ВСЕ маски первого элемента, потом второго и так далее. На текущий момент есть только такое решение, но оно как я понимаю делает проход только по всем маскам первого элемента.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
numbers = ['79601231241', '79601231219', '79601231221', '79601231216', '79601231213', '74952204822', '74952204822', '79051231210', '879136007001']
min = 7
max = 10
D = []
 
while min <= max:
  for val in numbers:
    i = 0
    check = numbers[i]
    if val.startswith(check[0:min]):
      D.append(val)
    i += 1
  min += 1
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.05.2019, 12:37
Местами циклы поменяйте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2019, 12:37
Помогаю со студенческими работами здесь

Замена фразы по маске на другую фразу по маске в файле
Добрый день! Имеется задача, которую, к сожалению, пока не могу реализовать: Есть текстовый файл состоящий из множества строк. В нем...

Замена в текстовом файле строк по маске
подскажите, можно ли как то замену по маске делать в txt ? например надо найти &lt;sup&gt;&lt;a name=r3&gt;&lt;a href=&quot;#n_3&quot;...

Найти в файле предложения соответствующие заданной маске
Задано маску, которая состоит из набора целых чисел. Каждое число определяет количество букв в соответствующем слове. Например, «1 3 7...

Удаление дублирующих строк в текстовом файле по маске
Здравствуйте! Есть файл file_in.txt - список прокси построчно. Его нужно отфильтровать. 1. Нужно найти строки-дублёры по маске, к...

Как найти в файле слова по заданной маске?
Эта задача имеет отношение к криптографии и прилагаемая программа может оказаться полезной для дешифровки шифротекста полученного с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru