私が設計しようとしているプログラムでは、設定ファイルに特定の条件が存在するかどうかを確認しています。たとえば、次の行:ThisExistsがプログラムに含まれているか、またはThisIsFirstがファイル内に存在し、その後にが続きます。がファイルの後ろにあります。どのようにプログラムを構造化するべきかのアドバイス
私はこの状況で使用される可能性のある効率的なアプローチを探しましたが、何も見つかりませんでした。
私の現在のアイデアは、基本的に、条件をチェックするたびにファイルを複数回反復するだけです。だから私は機能を持っているでしょう:
デフcheckA(ファイル)
デフcheckB(ファイル)
。 。 。
私には、私がチェックしたいすべての条件について反復する必要があるので、これは非効率的なようです。
最初は、検証したいすべての条件について各行をチェックするだけで1回だけ繰り返すことができたと思っていました。しかし、複数行になる可能性のある条件は、一度に複数の行についての情報を必要とするため、私はそれを行うことはできないと私は思っています。
これを行うための唯一の方法を概説した方法ですか、より効率的な方法がありますか?
私は以下の例を提供しようとしています。
def main():
file = open(filename)
result1 = checkA(file)
result2 = checkB(file)
"""This is a single line check function"""
def checkA(file)
conditionExists = False
for line in file:
if(line == "SomeCondition"):
conditionExists = True
return conditionExists
"""This is a multi line check function"""
def checkB(file)
conditionExists = False
conditionStarted = False
for line in file:
if(line == "Start"):
conditionStarted = True
elif(line == "End" and conditionStarted):
conditionExists = True
return conditionExists
例を教えていただけますか? – karlosss
申し訳ありません、私の質問を今ここに置くのではなく編集しています。 – Handcre
基本的には、ファイルをたくさん解析しなければならない場合は、個々の関数で複数回の解析に分割するか、1つの複雑な関数でそれをやろうとしたらどうでしょうか?時間の価値がある関数の複雑さは、複数回の解析から節約できますか? – Handcre