方法1: 正規表現を使用する方法
import re
def get_classes_from_css_file(file_path):
with open(file_path, 'r') as f:
css_content = f.read()
pattern = r'\.(\w+)\b'
classes = re.findall(pattern, css_content)
return classes
# 使用例
css_file_path = 'styles.css'
class_list = get_classes_from_css_file(css_file_path)
print(class_list)
この方法では、正規表現を使用してCSSファイル内のすべてのクラスを抽出します。クラスはピリオド(.)で始まり、単語の文字(a-zA-Z0-9_)で構成されていると仮定しています。
方法2: CSSパーサーライブラリを使用する方法
from cssutils import parseFile
def get_classes_from_css_file(file_path):
sheet = parseFile(file_path)
classes = []
for rule in sheet:
if rule.type == rule.STYLE_RULE:
selectors = rule.selectorList
for selector in selectors:
if selector.selectorType == selector.SELECTOR:
for value in selector:
if value.type == value.CLASSNAME:
classes.append(value.value)
return classes
# 使用例
css_file_path = 'styles.css'
class_list = get_classes_from_css_file(css_file_path)
print(class_list)
この方法では、cssutils
ライブラリを使用してCSSファイルを解析し、クラスを抽出します。クラス名はvalue.type == value.CLASSNAME
を使用して取得されます。
これらの方法を使用することで、PythonでCSSファイルからすべてのクラスを取得することができます。適用したい方法に応じて、上記のコード例を使って実装してみてください。