0

読み取り用に yaml ファイルを開きます

そこに保存されているパスを探しています

常にフォームのファイルの 2 行目にあります

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

パスが行の 3 番目の要素になることがわかっている場合にのみ機能する別の方法:

line.split()[2]

または、それが行の最後の要素になることがわかっている場合:

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