2013-01-15 17 views
5

मैं रंगीन अंधे लोगों की सहायता के लिए पाइथन में सीएसएस फ़ाइलों के साथ प्रयोग कर रहा हूं। मुझे हर चयनकर्ता ब्लॉक के अंदर जाना होगा और 'पृष्ठभूमि:' और 'रंग:' को बदलना होगा। मैंने tinycss जैसे सीएसएस पार्सर्स का उपयोग करने की कोशिश की लेकिन वे चयनकर्ताओं को प्राप्त करने पर ध्यान केंद्रित नहीं कर रहे हैं।पायथन सीएसएस पार्सर

उदाहरण इनपुट:

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

और उत्पादन:

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

क्या आप दिखा सकते हैं कि 'इनपुट' क्या है और आप 'आउटपुट' जैसे – user2134226

+0

INPUT: "बॉडी {पृष्ठभूमि: # एफएफ; रंग: # सीसीसी}" ... और इस तरह के कई ब्लॉक दिखा सकते हैं। आउटपुट: "बॉडी {पृष्ठभूमि: # 000; रंग: # एएए}" [रंग विनिर्देशों के अनुसार बदल गया] –

+1

एक टिप के रूप में, कृपया ध्यान रखें कि कुछ लोग बिल्कुल कोई रंग नहीं देख सकते हैं। बस रंग बदलना पर्याप्त नहीं है। इसे सही तरीके से करने में सक्षम होने के लिए, आपको अतिरिक्त संकेतों को जोड़ने की आवश्यकता है ताकि अकेले रंग जानकारी को अलग करने का एकमात्र तरीका न हो। – Arafangion

उत्तर

1

मैं नियमित अभिव्यक्ति का उपयोग कर इस समस्या का समाधान आप इस्तेमाल कर सकते हैं। तो मैं अपना खुद का पार्सर बना रहा। मैंने सीएसएस फ़ाइल में #XXX, #XXXXXX, आरजीबी (एक्स, एक्स, एक्स), एचएसएल (एक्स, एक्स, एक्स) जैसे रंग पैटर्न खोजने के लिए एक नियमित अभिव्यक्ति बनाई, जो पदों को रखने के लिए एक सूची बनाए रखी सीएसएस फ़ाइल। फिर मैंने सूची द्वारा निर्दिष्ट पदों पर सभी रंगों को फिर से लिखा। मैंने जो किया है उसके लिए यह सबसे अच्छा सारांश है। यदि आपको बहुत विस्तृत स्पष्टीकरण की आवश्यकता है तो कृपया टिप्पणी जोड़ें। धन्यवाद।

1

इस प्रयास करें:

http://cthedot.de/cssutils/

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

यह सीएसएस प्रक्रिया में उपयोग करने के लिए बहुत आसान है ssing।

चयनकर्ताओं के साथ काम करने cssutils.css.SelectorList और cssutils.css.Selector

+0

लेकिन उन्होंने उल्लेख नहीं किया है कि चयनकर्ताओं के साथ कैसे काम करना है। –

+0

इसकी पुस्तकालय में एक सुंदर दस्तावेज है। –

+0

मैं इसे करने के लिए कड़ी मेहनत कर रहा हूं लेकिन चयनकर्ता वर्ग सीएसएस स्टाइलरूल क्लास से संबंधित है। मुझे यहां अपना महत्व जानने के लिए कठिन समय है। यह वास्तव में मुझे अब bugging :( –

संबंधित मुद्दे