我如何解析python中的特定字符串

时间:2012-11-01 20:27:42

标签: python

打开yaml文件阅读

寻找存储在其中的路径

将始终位于文件的第二行,格式为

Location: !!python/unicode '[PATH here]'

对不起,如果这是基本的(我确定是),但是获取路径位置的最简单方法是什么?

2 个答案:

答案 0 :(得分:1)

最快的方法是将其子串:

line[28:-1]

但这只有在您完全确定该线条将采用该格式时才有效 - 在空白等方面没有差异。当然,您必须确保自己的线路正确;如果第2行是注释而第3行是实线,并且您尝试使用此解析注释,您将获得注释的正确部分并认为它是路径。

更强大,更灵活的解决方案可能是使用正则表达式:

re.match(r".* '(.*)'", line).group(1)

或:

re.match(r"Location:\s!!python/unicode\s'(.*)'", q).group(1)

...等。您想要使用的具体取决于您想要允许的变体,以及您想要防范的内容。

但实际上,如果你想解析YAML,为什么不使用YAML解析器?

答案 1 :(得分:0)

另一种方式,只有当你知道路径将是该行的第三个元素时才会起作用:

line.split()[2]

或者如果你知道它将是该行的最后一个元素:

line.split()[-1]