Как устранить все круглые скобки в текстовых файлах?
У меня есть текстовый файл, один столбец, взятый из Excel, следующего типа:
АМАНДА (ГРОМКОГОВОРЯЩИЙ) ДЖЕФФ Стивен (УМНОГОДНО) АМАНДА ДОК БРИАН ГРИН
В качестве вывода я хочу:
АМАНДА ДЖЕФФ СТИВЕН АМАНДА ДОК БРИАН ГРИН
Я попытался с циклом для всех столбцов, а затем:
if (str[i] == '('):
return str.split('(')
но это явно не работает. У вас есть какое-нибудь возможное решение? Затем мне потребуется выходной файл в качестве моего исходного текста, так что с каждым именем для каждой строки в одном столбце.
Спасибо всем! (Я использую PyCharm 3.2)
2 ответа
Я бы использовал регулярные выражения в этой ситуации. \w
заменит буквы, *
выберет 0 или больше. Затем мы проверяем, что между скобками.
import re
fi = "AMANDA (LOUDLY) JEFF STEVEN (TEASINGLY) AMANDA"
with open("mytext.txt","r") as fi, open("out.txt", "w") as fo:
for line in fi:
fo.write(re.sub("\(.*?\)", "", line))
Вы можете разбить строку на список, используя регулярное выражение, которое соответствует всему, что в скобках, или полное слово, удалить все элементы из списка, которые содержат скобки, а затем снова присоединить список к строке. Преимущество состоит в том, что в результирующей строке не будет двойных пробелов, где слово в параграфах было удалено.
import re
text = "AMANDA (LOUDLY SPEAKING) JEFF STEVEN (TEASINGLY) AMANDA DOC BRIAN GREEN"
words = re.findall("\(.*?\)|[^\s]+",text)
print " ".join([x for x in words if "(" not in x])