2012-03-08 2 views
0

я должен написать программу, чтобы удалить все выражения вида <word> и </word> где слово обозначает любую последовательность букв (нижний и верхний регистр) и Удалить все выражения вида <word ..... > и </word> где слово является так же, как прежде. Например, удалите <a href=”wwang3.htm” class=”c l”>Удалить все <word> теги

До сих пор мой код выглядит следующим образом:

def remove_1(file_location): 
    """""" 

    import re 
    file_variable = open(file_location) 
    lines = file_variable.read() 

    p = re.findall('<.*?>', lines) 
    print p 

    substitution = re.compile('<.*?>') 
    print substitution.subn(' ', p) 

Я получаю сообщение об ошибке, которое указывает на print.substitution.subn(' ', p), в котором он говорит, что я ожидал строку или буфера во время выполнения программы. Любая помощь приветствуется.

ответ

1

Вы пытаетесь подставить в строку «р». Однако p является результатом findall, который является списком.

Я бы предложил делать это следующим образом:

lines = file_variable.read() 
print re.subn('<.*?>', ' ', line) 
0

lines содержит строку, вы должны перейти к subn

print substitution.subn(' ', lines) 
Смежные вопросы