0

以下のような sed コマンドを含む古いシェル スクリプトが 1 つあります。ソース データ ($Tmp) は HTML テーブルです。

sed '/<table border/,/table>/d' $Tmp > $Out

このコマンドを Python スクリプトに変換するのを手伝ってくれる人はいますか? 正規表現でそれを行う方法が本当にわかりません。どうもありがとう..

4

3 に答える 3

1

これが簡単な実装です。

簡単に言えば、ファイルを開き、行ごとに繰り返し、各行を出力に出力します。一致する場合"<table border"、delete フラグが True に設定され、次の行は一致するまで出力に出力されません"table>"

import sys

f = open(sys.argv[1])
delete = False
for line in f:
    if delete == False:
        if "<table border" in line:
            delete = True

    if delete == False:
        print line,

    if delete == True:
        if "table>" in line:
            delete = False        
于 2013-05-04T10:44:30.327 に答える
0

<table borderスクリプトは、を含む行が見つからない限り、入力ファイルから出力ファイルにすべての行をコピーします/table>

したがって、1つの可能性は次のとおりです。

with open('in') as inf, open('out', 'w') as outf:
    while True:
        line = inf.readline()
        if '<table border' in line:
            while True:
                line = inf.readline()
                if not line or '/table>' in line:
                    line = inf.readline()
                    break
        if not line:
            break
        outf.write(line)
于 2013-05-04T10:28:27.173 に答える