Skip to main content
 首页 » 编程设计

python之纺织品解析 YAML

2025年05月04日13shangdawei

我认为这是我的第一个问题。我在 StackOverflow 上潜伏了很长一段时间,现在它对我来说是一个很好的资源。

我正在写一个像 jekyll 一样工作的小型静态站点生成器(最终用户在 textile 中写他的页面内容,在中写标题(元信息) YAML - 一个脚本将它与模板混合在一起,将所有内容放在服务器呈现的目录中)在 python 中。我这样做是为了学习 python。

我能够将 yaml 文件解析为字典;以及在 python 中将 textile 转换为 html - 感谢 python 库。问题是:如何解析 textile 文件中的 yaml 和同一文件中的 textile?

现在的想法是在 yaml 和 textile 内容之间放置一个行分隔符:例如。

--- 
someyaml: someyamlcontent 
anothervariable: somevalue 
andsoon: 
- something 
- somestuff 
--- 
 
_all the textile content goes here_ as well as all the **osm** here. 

我的想法是手动读取行并询问当前行是否为 == '---' 然后 python-yaml 进来; ‘---’回来了,python-textile 开始工作了。

还有其他方法吗?

提前致谢。 :)

请您参考如下方法:

假设您的所有文件都具有相同的格式并使用 YAML,一种可能性是将文件读入单个字符串,然后在“---”上进行字符串拆分以得到一个数组。

我不是 python 专家,但我认为这应该创建一个包含以下内容的数组:

  • 索引 0 - 空
  • 索引 1 - 您的 YAML header
  • 索引 2-N - 您的主体内容。

从这里开始,您可以只为您的 YAML 处理索引 1,然后单独处理您的正文内容。请注意,如果您有任何其他“---”字符串,您的正文内容将被分成多个数组元素。因此,您希望将索引 2 与其之后的任何其他索引连接起来(在连接时重新添加“---”字符串)。