Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/30: Рейтинг темы: голосов - 30, средняя оценка - 4.80
 Аватар для Smile:)
3 / 3 / 0
Регистрация: 26.05.2010
Сообщений: 27

Удаление текста из строки после запятой

02.12.2014, 00:32. Показов 6108. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, посоветуйте пожалуйста, как написать программу для удаления текста из строки после запятой и текста, который находится в скобках. Спасибо
Пример текста:

Начальник главного управления, управления (самостиного отдела, службы) здравоохранения
Заместитель начальника главного управления, управления (самостиного отдела, службы) здравоохранения
........................................ ........................................ ........................................ ................................
Врач приемного покоя (отделения)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2014, 00:32
Ответы с готовыми решениями:

Удаление текста после точки с запятой
Всем доброго дня! Помогите решить следующую задачу: в БЗ имеется поле где указан регион и нас. пункт (пример Тамбовская обл ; Тамбов...

Удаление слова после запятой из строки, упростить программу
Я написал программу для удаления одного слова после запятой, но она получилась очень громистка! Как ее можно записать проще, но чтобы так...

Удаление отдельных чисел после запятой
Приветствую всех. Помогите исправить код. Данный скрипт делает удаление отдельных чисел которые находятся после запятой и удаление всех...

9
 Аватар для ilnurgi
141 / 141 / 38
Регистрация: 20.02.2012
Сообщений: 597
02.12.2014, 09:53
исходный текст есть, а какой текст должно появиться?
0
 Аватар для Smile:)
3 / 3 / 0
Регистрация: 26.05.2010
Сообщений: 27
02.12.2014, 22:20  [ТС]
Исходя из примера, должно быть:

Начальник главного управления
Заместитель начальника главного управления
........................................ ..........................
Врач приемного покоя
0
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
02.12.2014, 22:51
вроде работает
Python
1
2
3
4
5
6
import re
  
regexp = re.compile(',.+')
with open ('text_for_regexp', 'r') as file:
     string = file.read()
print(re.sub(regexp, '', string))
Добавлено через 12 минут
почему то решил что текст после точек типа подпись на форуме ))
Python
1
2
3
4
5
import re 
regexp = re.compile(',.+|\(.+')
with open ('text_for_regexp', 'r') as file:
     string = file.read()
print(re.sub(regexp, '', string))
1
 Аватар для Smile:)
3 / 3 / 0
Регистрация: 26.05.2010
Сообщений: 27
03.12.2014, 00:09  [ТС]
Спасибо, кажется все работает. Только у меня исходный текст получается различными символами. так: Начальник головного управління
Вообще, информацию я беру из файла и мне ваш код нужно объединить с этим:
Python
1
2
3
4
5
6
7
8
9
input = open('medical_profession.lst', 'r')
output = open('medical_profession_edit.lst', 'w')
linesarray = input.readlines()
input.close()
seen = []
for line in linesarray:
    if line not in seen:
        seen.append(line)    
output.writelines(seen)
Можете мне в этом помочь? Спасибо.
0
123 / 62 / 32
Регистрация: 10.01.2014
Сообщений: 241
03.12.2014, 14:32
если я правильно понял то вот это подойдет:
Python
1
2
3
4
5
6
7
8
9
10
11
12
import re
input = open('medical_profession.lst', 'r')
output = open('medical_profession_edit.lst', 'w')
linesarray = input.readlines()
input.close
seen = []
for line in linesarray:
    if line not in seen:
        line = re.sub(',.+|\(.+', '', line)
        seen.append(line)
output.writelines(seen)
import re
1
 Аватар для Smile:)
3 / 3 / 0
Регистрация: 26.05.2010
Сообщений: 27
04.12.2014, 00:06  [ТС]
Цитата Сообщение от scio me nescire Посмотреть сообщение
если я правильно понял то вот это подойдет:
снова проблемы с кодированием и кажется оно удаляет больше чем нужно, должно быть 136 строк, а становится 86
0
5 / 5 / 0
Регистрация: 07.06.2012
Сообщений: 111
12.12.2014, 11:16
Вот еще один вариант решения задачи.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
text = ''
input = open("medical_profession.lst", "r", encoding='utf-8')
for line in input.readlines():
    for n in line:
        if n not in ',(':
            text += n
        else:
            output = open("medical_profession_edit.lst", "a",  encoding='utf-8')
            output.write(text+'\n')
            output.close()
            text = ''
            break
input.close()
снова проблемы с кодированием
Нужно чтобы кодировка файлов (medical_profession.lst, medical_profession_edit.lst ) совпадала с кодировкой, в которой питон записывает данные в файл.

Один из способов это обеспечить - преобразовать кодировку через Notepad++ т.е. нужно открыть файлы в Notepad++ и в меню выбрать преобразовать в UTF без BOM, затем сохранить эти файлы.
А в коде программы добавить параметр encoding='utf-8'.

Таким образом питон будет писать данные в кодировке utf-8 в файл, который тоже в кодировке utf-8 и в этом случае, по моим расчетам, все должно отображаться корректно.
0
 Аватар для borne
88 / 88 / 37
Регистрация: 28.11.2012
Сообщений: 309
12.12.2014, 13:08
интересно попробовать...а такой вариант не подойдет?:
Python
1
2
for i in open('test.lst').readlines():
    print i.split(',')[0].split('(')[0]
только начинаю сильно не пинать
1
5 / 5 / 0
Регистрация: 07.06.2012
Сообщений: 111
12.12.2014, 21:04
интересно попробовать...а такой вариант не подойдет?
Классная идея, классный вариант!

Добавлено через 1 час 27 минут
На основе предложенного варианта сделал вот такой вариант решения задачи:

Python
1
2
3
4
5
6
7
8
9
# python 3.4
input = open(r'c:\Python34\test.lst', 'r', encoding='utf-8')
for line in input.readlines():
    output = open(r"c:\Python34\test_edit.lst", "a",  encoding='utf-8')
    a = line.split(',')[0].split('(')[0]
    if '\n' not in a: a = a+'\n'
    output.write(a)
output.close()
input.close()
Некоторые строки слипались в одну, хотя в исходном файле они идут отдельно. Чтобы их разлепить пришлось добавить if '\n' not in a: a = a+'\n'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.12.2014, 21:04
Помогаю со студенческими работами здесь

Удаление всех элементов после запятой
Написать программу, которая бы удаляла все элементы после запятой! Я вот написал программу, но меня смущает мигания курсора! Он должен...

Сохранить количество знаков после запятой после конвертации из строки в double
Всем привет. У меня такой вопрос, может даже глупый немного. У меня в ячейке datagridview значение типа string вида "0.0000" ...

Удаление нулей после запятой/точки в конце числа
Здравствуйте. Как из следующих чисел в String убрать нули после точки/запятой и сам знак разделения в случае, когда после него только нули,...

Удаление последней запятой из строки string.TrimEnd(',')
Всем добрый день! Подскажите пожалуйста почему закомментированный вариант не работает со строкой: "2022-02-11-ВХ-0006,...

Удаление текста после ALT+Enter либо удаление дублей в массиве
подзадача заключается в том, чтобы после определенного символа в моем случае это "ALT+Enter" удалить все слова внутри ячейки....


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru