Я в основном работаю, чтобы удалить комментарии из файла (читать) и записать его в какой-нибудь файл.
Комментарии в одну строку могут находиться в начале строки или между ними. Часть, с которой начинается комментарий, до следующей строки, должна быть удалена.
В некоторых ответах предлагается приведенный ниже код, но он не работает для однострочных комментариев, которые присутствуют после некоторого полезного кода. У меня есть некоторые знания о lex, поэтому я попытался изменить код, чтобы исправить мои потребности, но я застрял. Пожалуйста, помогите.
import re
def stripComments(code):
code = str(code)
return re.sub(r'(?m)^ *#.*\n?', '', code)
print(stripComments("""#foo bar
Why so Serious? #This comment doesn't get removed
bar foo
# buz"""))
Ожидаемый результат:
Почему так серьезно?
bar foo
Фактическая выработка:
Почему так серьезно? # Этот комментарий не удаляется
бар фу
[перевод строки]
[перевод строки]