0

テキストファイルを開いて文字列を探していますNum_row_lables。の値Num_row_labelsが10以上の場合は、ファイルの名前を出力します。

次の例では、私のテキストファイルtest.mrkに次の形式のテキストが含まれています。Ps、私のテキストファイルには。がありませんNum_row_labels >= 10。常に「equal to」があります。

Format= { Window_Type="Tabular", Tabular= { Num_row_labels=10 } }

teststringそこで、これから見るパターンを保持する変数を作成しました。次に、ファイルを開きました。

次に、を使用して、 matchという変数reを取得しました。Num_row_labels=10on matchを使用group()して、必要なしきい値数を抽出し、を使用してint()変換しましたstring to int

私の目的は、find/printテキストファイルのNum_row_labels = 10または#が10より大きい場合に、ファイルの名前とともにNum_row_labelsの値までテキストファイルを読み取ることです。

これが私のテストコードです:

import os
import os.path
import re

teststring = """Format= { Window_Type="Tabular", Tabular= { Num_row_labels=10 } }"""
fname = "E:\MyUsers\ssbc\test.mrk"
fo = open(fname, "r")
match = re.search('Num_row_labels=(\d+)', teststring)
tnum = int(match.group(1))


if(tnum>=10):
        print(fname) 

開いているファイルのコンテンツで一致するものを検索し、tnum> = 10の条件を確認していることを確認するにはどうすればよいですか?私のテストコードは、最後の4行だけに基づいてファイル名を出力するだけです。検索がテキストファイルのコンテンツ全体で行われることを確認したいと思います。

4

2 に答える 2

4

あなたがしたいことは、ファイル全体を文字列として読み取り、その文字列でパターンを検索することです

with open(fname, "r") as fo:
    content_as_string = fo.read()
    match = re.search('Num_row_labels=(\d+)', content_as_string)
    # do want you want to the matchings
于 2012-06-27T20:11:03.900 に答える