4

次の問題で立ち往生しています: 件名を取得して電子メールから比較しようとしています (ディスクに保存され、電子メールは UTF-8 で保存されます)。

import re

def check_subj():
    subj = ""
    file = open("/home/hikaru/Desktop/sub.eml", "r")

    for line in file:
        try:
            a = re.search("Subject:\ ", line, re.IGNORECASE)
            a = line[a.end():]
            subj = a
            break
        except AttributeError:
            pass
    return subj

print(check_subj())

if check_subj() == 'sub':
    print("yay")

「print」は「sub」を正常に表示しますが、比較しても「yay」は出力されません。理由がわかりません(-.

4

1 に答える 1

2

提案されているように、行末が問題の考えられる原因です。これがより堅牢なソリューションです(ループのみ)

for line in file:
   match = re.search("Subject:\ (.*)", line, re.IGNORECASE)
   if match:
      subj = match.group(1)
      break
于 2012-04-18T14:42:58.277 に答える