我想制作一个python程序来帮助我对配置文件进行简单的编辑。我希望能够读取文件,替换文件的一部分,然后写入更改。我遇到的一个问题是有多条线是相同的。例如,配置文件如下所示:
/* Panel */
#panel {
background-color: black;
font-weight: bold;
height: 1.86em;
}
#panel.unlock-screen,
#panel.login-screen {
background-color: transparent;
有两行包含背景颜色:所以我无法测试该行是否等于字符串,因为如果我要替换包含背景颜色的每一行:我会得到不需要的更改。 此外,我不想依赖行的索引,因为添加或删除配置文件的行,它将更改。 任何帮助将不胜感激!
答案 0 :(得分:0)
看起来你正在尝试处理CSS文件。要正确解析此文件格式,您需要类似的东西 cssutils:
import cssutils
# Parse the stylesheet, replace color
parser = cssutils.parseFile('style.css')
for rule in parser.cssRules:
try:
if rule.selectorText == '#panel':
rule.style.backgroundColor = 'blue' # Replace background
except AttributeError as e:
pass # Ignore error if the rule does not have background
# Write to a new file
with open('style_new.css', 'wb') as f:
f.write(parser.cssText)
我对代码进行了更改,现在只更改#panel