2017-05-11 3 views
0

私は、科学文献を取得するためのコードを書き留めています。コードでは "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):と同等です:

+0

[IF文での使用や比較]の可能な重複(http://stackoverflow.com/questions/148042/using-or-comparisons -with-if-statements) –

答えて

3

あなたは両方のためのin lineであなたの状態を置く必要があります:あなたが今置く方法は次の二つの条件があります

if "<AbstractText>" in line or "<Title>" in line: 

string "<AbstractText>"は何か( if "nonemptystring"は常に trueである)を含んでいるため
"<AbstractText>" or 
"<Title>" in line 

"<AbstractText>"は常にtrueです。そういうわけで、すべてを印刷します。

0

一つの正しい方法は書くことです。私はその行がどのように解釈されるのかを強調するために括弧を付け加えました。

0

代わり

if "<AbstractText>" or "<Title>" in line: 

使用の

if "<AbstractText>" in line or "<Title>" in line: 
0

EDIT:固定構文エラーがそうのようにこれを試してみてください :

def fetch_abstract(pmid): 
    handle = efetch(db='pubmed', id=pmid, retmode='xml') 
    lines = handle.readlines() 

    for line in lines: 
     if "<AbstractText>" in line or "<Title>" in line: 
      print line, 

fetch_abstract("19555725") 
+2

これはSyntaxErrorです。 –

+0

ありがとう@aryamccarthy – nocolberri

関連する問題