Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2020, 07:57   #1
anna230
Новичок
Джуниор
 
Регистрация: 30.09.2020
Сообщений: 1
Восклицание как перенести содержимое файла в другой файл

Создать функцию, переносящую из файла1 в файл2 только номера телефонов. Номером телефона считается: Последовательность цифр и дефисов, причем цифр не больше 11

я создала 2 файла, в один написала текст и номера телефонов. Есть начало кода, но я не знаю как задать условие, чтобы оно отделяло текст от номера телефона. Помогите пожалуйста. Заранее спасибо
*текст расположен одной строкой, номера телефона на новой строчке каждый
def static ():
f=open (“fail1.txt”,“r”)
d=f.read ()
anna230 вне форума Ответить с цитированием
Старый 30.09.2020, 14:13   #2
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Можно копировать только четные строки, если есть гарантия, что формат текста именно такой.
Более лучшим решением будет использование регулярных выражений.
Arkuz вне форума Ответить с цитированием
Старый 29.10.2020, 12:29   #3
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,082
По умолчанию

попробуй так
Код:
import re
mass = []
files = open('num.txt', 'r')
 
for line_u in files.readlines():
    pattern_u = re.compile(r'(\+7?.\(9\d{2}\)?.\d{3}-\d{2}-\d{2})')
    result_u = pattern_u.search(line_u)
 
    if result_u:
        result = result_u.group(0)
        mass.append(result)
mass = sorted(set(mass))
my_file = open("result.txt", 'w')
 
 
for i in mass:
    my_file.write(i + "\n")
my_file.close()
где:
num.txt - входящий файл (поменяй на свой)
result.txt - результат

Пример
содерживое входящего файла
Цитата:
№ заказ пак шт пр. клиент телефон М. Опл. Тип уровня сервиса # интервал адрес комментарии дата интервал
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-01 Наличные Плюс 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
результат
Код:
+7 (918) 045-77-00
+7 (918) 045-77-01
+7 (918) 335-43-52
+7 (918) 398-07-81
+7 (918) 441-97-56
+7 (938) 435-93-29
если у тебя другая структура номера телефона, то поиграйся с регуляркой тут

Последний раз редактировалось Noor; 29.10.2020 в 12:34.
Noor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеется типизированный файл с тридцатью числами. Записать в другой файл числа имеющегося файла в обратном порядке. Валентин77 Общие вопросы C/C++ 8 17.12.2013 22:53
FASM. Считать содержимое файла в строку и затем записать обратно в файл Zart Помощь студентам 0 19.04.2011 17:02
Как перенести оглавление из файла в файл garik64 Microsoft Office Word 8 26.11.2009 14:03
Как из текстового файла перенести данные в excel файл hunter05 Microsoft Office Excel 1 08.09.2009 06:30