Pythonを使用してCSSファイルからすべてのクラスを取得する方法


方法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ファイルからすべてのクラスを取得することができます。適用したい方法に応じて、上記のコード例を使って実装してみてください。