Придумал себе задачу. Удалять все стили которые не использую из цсс файла.
При работе с простинькими файлами типо
.class {
color:red;
}
Все работает нормально но когда всречяеться конструкция сложнее в виде ид(#) то получаю вот такую ошбку
File "/home/blast/Old_Projects/css_cleaner/css_cleaner.py", line 23, in <module>
pattern = re.compile(rx ,re.IGNORECASE)
File "/usr/lib/python2.7/re.py", line 190, in compile
return _compile(pattern, flags)
File "/usr/lib/python2.7/re.py", line 244, in _compile
raise error, v # invalid expression
В файле тест.цсс стили до редактирования, в файле стайлс класи на удаление с новой строки(получаю при помощи Chrome Audits)
# -*- coding: utf-8 -*-
import re
"""
Input file with class to delete
"""
input_to_delete = open('styles.txt', 'r+')
deleteList = input_to_delete.read().splitlines()
input_to_delete.close()
"""
Input file with start css
"""
input_styles = open('test.css', 'r+')
stylesList = str(input_styles.read())
input_styles.close()
positionDict = {}
for x in deleteList:
clss = x
rx = r'\. %s (.+\n)+[}]'% clss
pattern = re.compile(rx ,re.IGNORECASE)
try:
match = re.search(pattern, stylesList)
print('Нашли клас')
print('--------------------------')
print(match.group())
ret = str(match.group())
print('Начало и конец строки для удаления ')
print(match.span()[0])
print(match.span()[1])
print('--------------------------')
stylesList= stylesList[:match.span()[0]] + stylesList[match.span()[1]:]
print('---------------RESULT-----------')
except:
pass
print(stylesList)
newFile = open('newstyleList.css', 'w+')
newFile.write(stylesList)
newFile.close()