9

CSSファイルを読み取り、意味のある変更(行/単語の追加/削除/置換など)を行うスクリプトを実装したいと思います。基本的なロジックは、RTL(右から左)変換を実装することです。

私はそれにかなりの数のアプローチを考えることができました:

  • ファイルリーダー-行を読み取り、分析して、必要な変更を加えます。
  • 2フェーズスキャン-メモリモデルを作成し、スキャンして変更し、モデルをテキストに保存します。
  • 正規表現-非常に複雑なものもあるため、非常に難しい場合があります。

基本的に私が疑問に思っているのは、それらの方法、または他の方法のどれがそれを行うためのPythonの方法でしょうか?この種の操作に精通している必要があると思われる関連ライブラリはありますか?

編集:これは「この使用可能なプロジェクトを通じてPythonを学ぶ」種類のプロジェクトであるため、ここで言及するほとんどのライブラリに精通していないことに注意してください。

4

1 に答える 1

18

「手早く汚い」ものが必要な場合は、これを行うための興味深い方法がたくさんあります。(あなたが言ったように:行ごと、正規表現、…)

しかし、それを「正しく」(あらゆる種類の入力に対して正しく) 実行したい場合は、公式のCSS トークン化と文法に基づいた実際のパーサーが必要になります。Python にはcssutilstinycssがあります。(免責事項: 私は tinycss の作成者です。) 学びたいのであれば、tinycss のソース コードは簡単で習得しやすいと思います :)

于 2012-07-27T10:18:25.220 に答える