1

Python プログラムで、文字列の特定の部分をテキスト ファイルで検索するようにします。たとえば、私のテキスト ファイルは次のようになります。

VERSION_1_0001
VERSION_2_0012
VERSION_3_0391

これらはほんの一例です。Python プログラムで "VERSION_2_" を検索するようにしたいのですが、別のテキスト ファイルに 0012 を出力させます。それは可能ですか?

これまでのところ、私はこれを持っています:

with open('versions.txt', 'r') as verFile:
    for line in verFile:
        if 'VERSION_2_' in line:
            ??? (I don't know what would go here so I can get the portion attached to the string I'm finding)

事前に助けてくれてありがとう!

4

1 に答える 1

3

最後のアンダースコアの後の行の部分を抽出する方法に関する質問の場合:

 with open('versions.txt', 'r') as verFile:
    for line in verFile:
        if 'VERSION_2_' in line:
            # Split the line from the right on underscores and
            # take the last part of the resulting list.
            print line.rpartition('_')[-1]

ファイルへの書き込みに関する質問の場合:

with open('resultfile', 'w') as wFile:
    wFile.write(line.rpartition('_')[-1])

すべての結果を同じファイルに書き込みたい場合は、書き込み先のファイルをループの外で開きます。

# It doesn't matter which `with` block is the outermost.
with open('resultfile', 'w') as wFile:
    with open('versions.txt', 'r') as verFile:
        for line in verFile:
            if 'VERSION_2_' in line:
                # Split the line from the right on underscores and
                # take the last part of the resulting list.
                wFile.write(line.rpartition('_')[-1])
于 2013-04-08T19:21:05.283 に答える