2013-01-15 44 views
5

我正在Python中试验CSS文件以帮助色盲人士。我需要进入每个选择器块,并更改'背景:'和'颜色:'。我尝试使用像tinycss这样的CSS解析器,但他们并不专注于获取选择器。Python CSS分析器

例输入:

body {background:#fff; color:#ccc} 

输出:

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

你能告诉什么是'输入',并且你想要'输出'像 – user2134226

+0

INPUT: “body {background:#fff; color:#ccc}”......和许多像这样的块。 输出: “body {background:#000; color:#aaa}”[根据指定的颜色更改颜色] –

+1

作为提示,请注意,有些人根本看不到任何颜色。仅仅改变颜色是不够的。为了能够正确执行此操作,您需要添加更多提示,以便单独使用颜色不是区分信息的唯一方法。 – Arafangion

回答

1

我使用正则表达式解决了这个问题,你可以使用。所以我最终做出了自己的解析器。我创建了一个正则表达式来搜索CSS文件中的#XXX,#XXXXXX,rgb(X,X,X),hsl(X,X,X)等颜色模式,维护一个列表以保持它们的位置CSS文件。然后我重新编写了列表中指定位置的所有颜色。这是我所能做的最好的总结。如果您需要非常详细的解释,请添加评论。谢谢。

1

试试这个:

http://cthedot.de/cssutils/

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

这是很简单的CSS凝固酶原使用ssing。

与选择工作cssutils.css.SelectorListcssutils.css.Selector

+0

但他们没有提到如何使用选择器。 –

+0

它的库有一个漂亮的文档。 –

+0

我正在努力做到这一点,但选择器类与CSSStylerule类有关。我很难在这里找出它的意义。它真的窃听我现在:( –