什么是实现css解析器/替换器的pythonic方法

时间:2012-07-21 12:53:43

标签: python

我想实现一个脚本来读取CSS文件并对其进行有意义的更改(添加/删除/替换行/单词等)。基本逻辑是实现RTL(从右到左)转换。

我可以想到很多方法:

  • 文件阅读器 - 读取一行,分析并对其进行必要的更改。
  • 两相扫描 - 在内存模型中创建,扫描并更改它,将模型保存为文本。
  • 正则表达式 - 可能非常困难,因为其中一些可能非常复杂。

基本上我想知道的是哪些或其他方法是python方式呢?是否有任何相关的图书馆,你认为我应该熟悉这种操作?

编辑: 应该注意的是,这是一个“通过这个可用项目学习python”的项目,所以我不熟悉你在这里提到的大多数库。

1 个答案:

答案 0 :(得分:10)

如果你想要“快速而肮脏”的东西,有许多有趣的方法可以做到这一点。 (正如你所说:逐行,正则表达式,......)

但是如果你想“正确”(对所有类型的输入都正确)你需要一个基于官方CSS tokenization and grammar的真正解析器。在Python中有cssutilstinycss。 (免责声明:我是tinycss的作者。)如果你想学习,我想认为tinycss’s source code简单易学:)