特定の情報を抽出しようとしているデータベースがあります。
論理構造は次のようになります。
GC; クエリ
フィート; 名前 (このフィールドが必要です)
fd; SEQUENCE (このフィールドが必要)
fd; 順序
... (さらに「fd;」フィールド)
フィート; 名前 (このフィールドが必要です)
fd; SEQUENCE (最初の fd のみが必要)
... (さらに fd; フィールド)
フィート; 名前 (このフィールドが必要です)
fd; SEQUENCE (最初の fd のみが必要)
GC; 別のクエリ
この構造は、QUERY ごとに 1 つずつ、何千回も繰り返されます。抽出する必要があるフィールドを括弧で囲みました。関数とスニペットの両方として次のコードを試しましたが、機能しません。変数のスコープが正しいことを確認しました。「ft」フィールドと同じ数のエントリを含む mylist が必要です。私のコードでは、mylist が作成されますが、空のリストです。私の論理が間違っているアイデアはありますか? 私はpython 2.6.5を使用しています
mylist = []
query = raw_input("query: ")
flag = 0
for line in lines:
if line.startswith('gc; ' + query):
flag == 1
continue
elif line.startswith('fc; ') and flag == 1:
print line
flag = 1
elif line.startswith('fd; ') and flag == 1:
print line
mylist.append(line)
flag = 0
elif line.startswith('fd; ') and flag == 0:
continue
else:
continue