私は、科学文献を取得するためのコードを書き留めています。コードでは "xml"ファイルを取得し、大きなファイルから必要なデータや行を抽出します。Pythonで "または" if条件を使用する正しい方法は何ですか
このファイルから "AbstractText"または "Title"を "if"と使用すると、 "AbstractText"または "Title"タグを含む2行が印刷されます。 "or"ステートメントコードのタグがすべての行を印刷し始めます。正常に実行されていない
コード:
def fetch_abstract(pmid):
handle = efetch(db='pubmed', id=pmid, retmode='xml')
lines = handle.readlines()
for line in lines:
if "<Title>" in line:
print line,
fetch_abstract("19555725")
:
def fetch_abstract(pmid):
handle = efetch(db='pubmed', id=pmid, retmode='xml')
lines = handle.readlines()
for line in lines:
if "<AbstractText>" in line:
print line,
fetch_abstract("19555725")
コードは、 "タイトル" タグで正しく実行されている:
def fetch_abstract(pmid):
handle = efetch(db='pubmed', id=pmid, retmode='xml')
lines = handle.readlines()
for line in lines:
if "<AbstractText>" or "<Title>" in line:
print line,
fetch_abstract("19555725")
コードは "AbstractText" タグで正しく実行されています
この問題を解決するにはどうすればよいですか?
if "<AbstractText>" in line or "<Title>" in line:
あなたの最初の試みはif ("<AbstractText>") or ("<Title>" in line):
と同等です:
[IF文での使用や比較]の可能な重複(http://stackoverflow.com/questions/148042/using-or-comparisons -with-if-statements) –