Python CSS解析器

8
我正在使用Python中的CSS文件来帮助色盲患者。我需要进入每个选择器块并更改“background:”和“color:”。我尝试使用像tinycss这样的CSS解析器,但它们没有专注于获取选择器。
示例输入:
body {background:#fff; color:#ccc}

输出:

body {background:#000; color:#aaa}

你能展示一下 input 是什么,以及你想要的 output 是什么吗? - Mirage
"body{background:#fff; color:#ccc}"...和许多类似的区块。 输出: "body{background:#000; color:#aaa}" [根据给定规格更改了颜色] - VikkyB
1
作为提示,请注意有些人根本看不到颜色。仅仅改变颜色是不够的。为了能够正确地做到这一点,您需要添加额外的提示,以便颜色不是区分信息的唯一方式。 - Arafangion
2个回答

2

try this:

http://cthedot.de/cssutils/

parser = CSSParser()
# optionally
parser.setFetcher(fetcher)
sheet = parser.parseFile('test1.css', 'ascii')
print sheet.cssText

在CSS处理中使用它非常简单。

要使用选择器,您可以使用cssutils.css.SelectorListcssutils.css.Selector


它的库有非常漂亮的文档。 - Dmitry Zagorulkin
我正在努力尝试做这件事,但选择器类与CSSStylerule类相关。 我很难弄清它在这里的重要性。 现在它真的让我烦恼:( - VikkyB

2

我通过使用正则表达式来解决这个问题。因此,我自己制作了一个解析器。我形成了一个正则表达式,用于在CSS文件中搜索颜色模式,如#XXX,#XXXXXX,rgb(X,X,X),hsl(X,X,X),并维护一个列表以保持它们在CSS文件中的位置。然后,我只需按照列表指定的位置重新编写所有颜色。这是我所做的最好总结。如果您需要非常详细的说明,请添加评论。谢谢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接