【发布时间】:2012-07-20 11:56:18
【问题描述】:
我想实现一个脚本来读取 CSS 文件并对其进行有意义的更改(添加/删除/替换行/单词等)。基本逻辑是实现 RTL(从右到左)转换。
我可以想到很多方法:
- 文件阅读器 - 读取一行,分析它并对其进行必要的更改。
- 两阶段扫描 - 在内存中创建模型,扫描并更改它,将模型保存为文本。
- 正则表达式 - 这可能非常困难,因为其中一些可能非常复杂。
基本上我想知道的是,这些或其他方法中的哪一个将是 python 的方式来做到这一点?对于这种操作,您认为我应该熟悉哪些相关库?
编辑: 需要注意的是,这是一个“通过这个可用的项目学习 python”的项目,所以我不熟悉你在这里提到的大多数库。
【问题讨论】:
-
nedbatchelder.com/text/python-parsers.html 对 Python 语言解析工具的状态进行了很好的调查。我最好的(非分析性)猜测是 CSS 是一种上下文无关(非常规)语言,因此只能使用有状态解析器正确变形。
-
您是否尝试过 Python 中现有的 CSS 解析器,例如 cssutils?
-
是否要保留格式、cmets 等?
-
首先可能很重要的一点是,这是一个“通过这个可用的项目学习 python”的项目,所以我对你上面提到的大多数事情都不熟悉(我会在主帖也是)。通过查看 cssutils 页面和示例,它似乎属于我提到的第二种方法。我肯定会研究它,但仍然是一个问题,如果这实际上是这种情况下最好的 python 实践?
-
格式化对我来说非常灵活,目前还不是 100% 必须...
标签: python