2011-08-14 55 views
2

我认为这是我的第一个问题。我一直在StackOverflow中潜伏了很长一段时间,现在它对我来说是一个很好的资源。YAML关于织物解析

我正在写一个小静网站生成器的工作原理是哲基尔(最终用户中写道YAML纺织和标题(元信息),他的页面内容 - 一个脚本捣烂起来与模板放置在服务器呈现的目录中的一切)在Python中。我正在为学习python这样做。

我可以将yaml文件解析为字典;以及在Python中将纺织品转换为html格式 - 感谢python库。问题是:如何解析纺织文件中的yaml和同一文件中的纺织品?

现在,想法是在yaml和纺织品内容之间放置一个分隔线:ex。

--- 
someyaml: someyamlcontent 
anothervariable: somevalue 
andsoon: 
- something 
- somestuff 
--- 

_all the textile content goes here_ as well as all the **osm** here. 

我的想法的排序是手工读取线路,并要求如果当前行是==“---”那么蟒蛇,YAML进来之后; '---'回来了,这是蟒蛇纺织转向工作。

还有其他的方法吗?

在此先感谢。 :)

+0

这听起来像它会工作,可能要检查出http://stackoverflow.com/questions/6816236/loading-document-as-raw-string-in-yaml-with-pyyaml看到的阅读另一个例子来自YAML文件的任意数据。几乎发布了这个答案,但它不是另一种方式,只是如何完成你已经在谈论的内容。 – agf

+0

欢迎并祝贺你的第一个问题。 @agf指向的链接是一个路径。我在这里发布了一个更高层次的细节。祝你好运。 –

+0

谢谢你们!链接agf张贴对我很好。 – jpanganiban

回答

1

假设你所有的文件将具有相同的格式,并使用YAML,一种可能性是将文件读入一个字符串,然后做一个字符串分割上“---”落得了一个数组。

我不是一个Python的家伙,但我认为这应该创建具有以下的数组:

  • 指数0 - 空
  • 指数1 - 你的YAML头
  • 指数2-N - 您的主体内容。

从这里,你可以只处理你的YAML的索引1,然后分别处理你的身体内容。请注意,如果您有其他“---”字符串,则您的主体内容将被拆分为多个数组元素。因此,您希望将索引2与其后的所有其他索引结合在一起(在进行联接时重新添加“---”字符串)。