2013-01-15 9 views
5

私は色盲の人を支援するためにPythonでCSSファイルを試しています。私はすべてのセレクタブロックの中に入って、「背景:」と「色:」を変更する必要があります。私はtinycssのようなCSSパーサを使ってみましたが、セレクタの取得に集中していません。Python CSSパーサー

例入力:

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

そして出力:それはCSSのproceで使用するために非常に簡単です

http://cthedot.de/cssutils/

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

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

「出力」を – user2134226

+0

と入力してください。入力: 「body {background:#fff; color:#ccc}」...このようなブロックはたくさんあります。 OUTPUT: "body {background:#000; color:#aaa}" [指定された仕様に従って色が変更されました] –

+1

ヒントとして、一部の人は全く色を見ることができません。単に色を変えるだけでは不十分です。これを正しく行うためには、色だけで情報を区別する唯一の方法ではないように、追加のキューを追加する必要があります。 – Arafangion

答えて

1

を使用することができ、セレクタで動作するように

私は正規表現を使用することによって、この問題を解決しました。だから、私は自分のパーサーをつくってしまった。 CSSファイルの#XXX、#XXXXXX、rgb(X、X、X)、hsl(X、X、X)などの色パターンを検索するための正規表現を作成し、それらの位置を保持するためのリストを維持しましたCSSファイル。その後、リストで指定された位置にすべての色を書き直しました。これは、私がしたことに対して私が与えることができる最高の要約です。非常に詳細な説明が必要な場合は、コメントを追加してください。ありがとうございました。

1

はこれを試しますssing。あなたはcssutils.css.SelectorListcssutils.css.Selector

+0

しかしセレクタを操作する方法については言及していません。 –

+0

そのライブラリにはかなりのドキュメントがあります。 –

+0

私はそれをするのが難しいですが、セレクタクラスはCSSStyleruleクラスに関連しています。私はここでその重要性を理解するのに苦労している。その本当に今私を悩ます:( –