0

打开一个 yaml 文件以供阅读

寻找存储在其中的路径

将始终位于表单中文件的第二行

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

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

4

2 回答 2

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 解析器呢?

于 2012-11-01T20:29:55.683 回答
0

另一种方法,只有在您知道路径将是该行的第三个元素时才有效:

line.split()[2]

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

line.split()[-1]
于 2012-11-01T21:33:24.033 回答