2016-06-17 10 views
-4

次のような問題文があります。ログファイルには、テスト結果に関連するログが含まれています。たとえば、testcase1のようなテキストと、test caseのログ、testcase2、test caseのログなどがあります。ログファイルからテストを抽出するためのPythonスクリプト

testcase1とtestcase3のログを抽出する場合、スクリプトはtestcase1とtestcase3のようにユーザーからの入力を読み取る必要があります。次に、指定されたテストケースのログだけを抽出します。

この場合、ユーザーはtestcase1とtestcase3を入力し、出力はtestcase1とtestcase3の下の行をログファイルから入力する必要があります。

+0

あなたには、いくつかの例のログを表示することができますか?あなたの問題文はあまりにも一般的すぎて、他人を助けることができません。 – meatspace

+0

あなたが実装したコードを投稿してください。私たちはあなたのコードを書くつもりはありません。コードに問題がある場合は、ここにエラーを投稿してください。 – Harwee

答えて

0

ここでは、すべてのテストケースログが別々の行にあるという前提を踏まなければなりません。これは、すべてのログ行の後に '\ n'があることを意味します。

次に、ラインキャッシュモジュールからファイルを読み取ることができます。 ログを特定の形式にする必要があります。ここでは、[testcaseN] [Log message]と[testcaseN]が変数 'testcase'と 'N'を共通にする必要があると述べました。

linecacheモジュールを使用してすべての行をフェッチしている間に、入力として与えられたtestcaseNと取り出した個々の行の最初の単語をマッチングするためにreモジュールを使います。一致したら結果を表示します。

0

最後にテキストを抽出するためにウォーキングスクリプトを得た

#我々はタイトル2アンダーラインのみのファイルとプリントをreadinているプログラムで例えば、テキストファイル #から特定の行を読み、タイトル4 #ログファイルには空白行が含まれています #ログファイルの例 #タイトル #1 #dklfjsdkl; #G #sdfzsdfsdf #sdfsdfsdf #dsfsdfsd #dfsdf # #タイトル #2 # #dfdf #dfdf #dfdf #DF #DFD #D # #1 TITLE3 # sdfdfd 位 #のDFD # #のDFD # #タイトル #dfdfd 4 #dfkdfkd #dfdkjmd #dfdkljm

in_list= [] 
while True: 
    i = raw_input("Enter title to be extracted (or Enter to quit): ") 
    in_list.append(i) 
    if not i: 
     break 

    print("Your input:", i) 
print("While loop has exited") 
in_list.remove(i) 
print "Input list", in_list 

flist = [] 
with open("C:\\text.txt", 'r') as inp: 
    #read the flie and storing into the list 
    flist =inp.readlines() 
    inp.close() 

#making everything in the list to lower case 
flist = map(lambda x:x.lower(),flist) 
flist = [s.strip("\n") for s in flist] 
print flist 

    # printing the complete log file from the list. Since once we put the vlaue in the list the new line character will be \ appended in the list element. 
    #hence striping with \n character 
# for i in flist: 
#  print i.strip("\\n") 

for j in range(len(in_list)): 
    result = any(in_list[j] in word for word in flist) 
    if result: 
     i_index = flist.index(in_list[j]) 
     flag = 0 
     with open("C:\\output.txt",'a') as f1: 
      f1.write(flist[i_index]) 
      f1.write("\n") 

      while flag ==0: 
       if "title" in flist[i_index+1]: 
        flag =1 
       else: 
        i_index += 1 
        f1.write(flist[i_index]) 
        f1.write("\n") 
        i_index += 1 

f1.close() 
関連する問題