|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
|
Извлечь номера телефонов из текстового файла06.03.2019, 00:34. Показов 20946. Ответов 17
Метки нет (Все метки)
Доброго вечера.
Ничего не шарю в программировании, есть исходный текст в форматах любых (txt/pdf/xlsx/word) Вид текста: дата 11/14/2016 специалист Васьков Юрий Смена: Дневная смена маршрут Маршрут №6 автомобиль №6 №6, №6 174 перенос № заказ пак шт пр. клиент телефон М. Опл. Тип уровня сервиса # интервал адрес комментарии дата интервал 1 RU161109-472905 PACK19697671 1 Ольга Каверзина +7 (918) 335-43-52 Наличные Плюс 0 09:00 - 13:00 Краснодар, красина, Дом 3/3, Кв. 76 2 RU161110-466130 PACK19651968 1 Софья назаретян +7 (918) 398-07-81 Наличные Плюс 0 09:00 - 13:00 Краснодар, Базовская, Дом д.61 3 RU161111-260536 PACK19698066 3 Виктор Кипуров +7 (918) 441-97-56 Наличные Плюс 0 09:00 - 13:00 Краснодар, Речная,Чехова , Дом 4, Кв. 52 4 RU161111-522664 PACK19697905 2 Ирина Концевик +7 (918) 045-77-00 Наличные Плюс 0 09:00 - 13:00 Краснодар, ул им Братьев Дроздовых, Дом 41, Кв. 19 5 RU161111-252357 PACK19697840 1 Ирина Концевик +7 (918) 045-77-00 Наличные Плюс 0 09:00 - 13:00 Краснодар, ул им Братьев Дроздовых, Дом 41, Кв. 19 6 RU161104-298585 PACK19514804 3 Роман +7 (938) 435-93-29 Наличные Плюс 0 09:00 - 13:00 Краснодар, фурманова, Дом 62 9.11 и таких 500 000 номеров. короче большая база данных, нужно каким-то образом извлечь номера телефонов, не повторяя их и сохранить либо в буфер либо в отдельный файл без разницы какого формата. Находил похожую тему на форуме, где написана формула для макроса для ворда, но она не работает. Помогити - плес.
0
|
|
| 06.03.2019, 00:34 | |
|
Ответы с готовыми решениями:
17
Реализовать программу, извлекающую из файла номера телефонов
Grep. Извлечь из текста номера телефонов |
|
|
|
| 06.03.2019, 00:59 | |
|
sdlkfjhsdlktyhk, регулярные выражения
python регулярные выражения номер телефона Номер, ведь может быть написан в нескольких из этих форматов 8(ddd)ddddddd; +7(ddd)ddddddd; 8dddddddddd; +7dddddddddd; Добавлено через 1 минуту Очень коротко и понятно: /^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/ или ^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$ Съедает следующие телефоны: +7(903)888-88-88 8(999)99-999-99 +380(67)777-7-777 001-541-754-3010 +1-541-754-3010 19-49-89-636-48018 +233 205599853
0
|
|
|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
||
| 06.03.2019, 10:19 [ТС] | ||
|
ну ваше сообщение мне ясности не внесло.
у меня все номера в базе идут на : "+7 (9" и что мне делать с этим: "
0
|
||
|
|
||
| 06.03.2019, 11:11 | ||
|
https://docs.python.org/3/library/re.html с его помощью, можно найти все данные, отвечающие шаблону. Я не знаю, кто и как решал бы подобную задачу, но: 1. Открываем файл в python3 (open('file') 2. Преобразуем в список где каждое слово - отдельный элемент 3. Ищем все вхождения по re. берем каждое, ПЛЮС два перед ним сохраняем в csv
0
|
||
|
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
|
|
| 06.03.2019, 11:12 | |
|
sdlkfjhsdlktyhk, загуглить Использование регулярных выражений в Python для новичков
0
|
|
|
|
||||||
| 06.03.2019, 11:25 | ||||||
|
* * *
или если файл в csv то там еще проще Добавлено через 7 минут sdlkfjhsdlktyhk, совсем, например, так: file = open('text.txt', 'r') s = file.read() list = s.split(' ') print(list) где text.txt это текстовый файл он выдаст что-то вроде ['1', 'RU161109-472905', 'PACK19697671', '1', 'Ольга', 'Каверзина', '+7', '(918)', '335-43-52', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'красина,', 'Дом', '3/3,', 'Кв.', '76\n\n2', 'RU161110-466130', 'PACK19651968', '1', 'Софья', 'назаретян', '+7', '(918)', '398-07-81', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'Базовская,', 'Дом', 'д.61\n\n3', 'RU161111-260536', 'PACK19698066', '3', 'Виктор', 'Кипуров', '+7', '(918)', '441-97-56', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'Речная,Чехова', ',', 'Дом', '4,', 'Кв.', '52\n\n4', 'RU161111-522664', 'PACK19697905', '2', 'Ирина', 'Концевик', '+7', '(918)', '045-77-00', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'ул', 'им', 'Братьев', 'Дроздовых,', 'Дом', '41,', 'Кв.', '19\n\n5', 'RU161111-252357', 'PACK19697840', '1', 'Ирина', 'Концевик', '+7', '(918)', '045-77-00', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'ул', 'им', 'Братьев', 'Дроздовых,', 'Дом', '41,', 'Кв.', '19\n\n6', 'RU161104-298585', 'PACK19514804', '3', 'Роман', '+7', '(938)', '435-93-29', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'фурманова,', 'Дом', '62', '9.11'] и вот с этими данными, уже можно работать Добавлено через 2 минуты * * * или вот так - преобразуем каждую строчку в список
и полчим ['1', 'RU161109-472905', 'PACK19697671', '1', 'Ольга', 'Каверзина', '+7', '(918)', '335-43-52', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'красина,', 'Дом', '3/3,', 'Кв.', '76\n'] ['\n'] ['2', 'RU161110-466130', 'PACK19651968', '1', 'Софья', 'назаретян', '+7', '(918)', '398-07-81', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'Базовская,', 'Дом', 'д.61\n'] ['\n'] ['3', 'RU161111-260536', 'PACK19698066', '3', 'Виктор', 'Кипуров', '+7', '(918)', '441-97-56', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'Речная,Чехова', ',', 'Дом', '4,', 'Кв.', '52\n'] ['\n'] ['4', 'RU161111-522664', 'PACK19697905', '2', 'Ирина', 'Концевик', '+7', '(918)', '045-77-00', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'ул', 'им', 'Братьев', 'Дроздовых,', 'Дом', '41,', 'Кв.', '19\n'] ['\n'] ['5', 'RU161111-252357', 'PACK19697840', '1', 'Ирина', 'Концевик', '+7', '(918)', '045-77-00', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'ул', 'им', 'Братьев', 'Дроздовых,', 'Дом', '41,', 'Кв.', '19\n'] ['\n'] ['6', 'RU161104-298585', 'PACK19514804', '3', 'Роман', '+7', '(938)', '435-93-29', 'Наличные', 'Плюс', '0', '09:00', '-', '13:00', 'Краснодар,', 'фурманова,', 'Дом', '62', '9.11']
0
|
||||||
|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
||
| 06.03.2019, 12:15 [ТС] | ||
|
как вообще в python работать.
скачал, установил, это типа командной строки что-то. вбил код туда который вы напечатали:
0
|
||
|
|
|
| 06.03.2019, 13:51 | |
|
sdlkfjhsdlktyhk, да, можно пройти начальный курс (долго), но хорошо
https://stepik.org/course/7215 а если быстро, то скачайте бесплатную версию wing101 и python 3.6 для начала
1
|
|
|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
||
| 06.03.2019, 14:26 [ТС] | ||
|
все сделал и установил. теперь у меня открыто черное окно python: Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. что дальше делать? Добавлено через 8 минут file = open('C:\Users\санчоус\Desktop\text.txt' ) File "<stdin>", line 1 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape >>> ... list = [] >>> ... for line in file: ... list.append(line.split(' ')) ... ... ... for x in list: File "<stdin>", line 6 for x in list: ^ SyntaxError: invalid syntax >>> print(x)
0
|
||
|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
|
| 06.03.2019, 14:37 [ТС] | |
|
Вообщем мне как-то с помощью python или другой проги надо сделать следующее:
1. открыть файл формата txt, весом около 20 мб. 2. найти все что начинается с "+7 (" 3. далее после найденного выделить последующие +7 ("918) 390-90-90" - 14 символов в каждом случае нахождения их в тексте 4. скопировать все найденное в столбик в новый текстовый документ, что бы из белиберды получилось следующее +7 (918) 390-90-90 +7 (918) 390-91-90 +7 (918) 390-92-90 +7 (918) 390-93-90 5. без разницы в каком они будут порядке цифр убывания или возрастания. 6. номера не должны повторяться end
0
|
|
|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
|
| 06.03.2019, 14:43 [ТС] | |
|
я в папке с установленной программой вообще не нашел исполняемого файла .exe
0
|
|
|
|
|
| 06.03.2019, 15:31 | |
|
sdlkfjhsdlktyhk, его там и нет
скачайте в интернете программу wing101 http://www.wingware.com/downlo... os=windows
0
|
|
|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
||||||
| 06.03.2019, 18:31 [ТС] | ||||||
|
вообщем помог мне разобраться мой старый знакомый программист, код для парса выглядит так:
0
|
||||||
|
|
||||||
| 06.03.2019, 19:32 | ||||||
|
Код выглядит так =)
0
|
||||||
|
Просто Лис
|
|
| 10.03.2019, 15:22 | |
|
0
|
|
|
4 / 4 / 2
Регистрация: 06.03.2019
Сообщений: 89
|
|
| 12.03.2019, 22:55 [ТС] | |
|
что?
0
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 12.03.2019, 23:53 | |
|
0
|
|
| 12.03.2019, 23:53 | |
|
Помогаю со студенческими работами здесь
18
Отобрать номера телефонов из файла по коду города
Вывести номера строк исходного текстового файла и номера позиций в строке где встречаеться заданное слово Разработать программу создания и корректировки файла, содержащего номера частных телефонов. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|