以下のような sed コマンドを含む古いシェル スクリプトが 1 つあります。ソース データ ($Tmp) は HTML テーブルです。
sed '/<table border/,/table>/d' $Tmp > $Out
このコマンドを Python スクリプトに変換するのを手伝ってくれる人はいますか? 正規表現でそれを行う方法が本当にわかりません。どうもありがとう..
これが簡単な実装です。
簡単に言えば、ファイルを開き、行ごとに繰り返し、各行を出力に出力します。一致する場合"<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
<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)