2012-04-18 95 views
3

我已经坚持了以下问题: 我试图让主题和电子邮件比较(它保存在磁盘上,电子邮件中的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") 

一切似乎都没什么问题。“打印“成功显示我”子“,但比较不会打印”耶“对我来说。 我不明白为什么 - (

+2

尝试'打印(。 repr(check_subj()))'',我敢打赌它在最后得到了回车符。 – geoffspear 2012-04-18 14:07:18

+0

需要看到.eml文本。我在MIME的测试邮件上运行了你的代码,它工作正常非常好。 – djechlin 2012-04-18 14:17:32

+0

是的,它真的是“\ n”,非常感谢! – Hikaru 2012-04-18 15:34:37

回答

1

线的末端,所建议的,是你的问题的原因可能是一个更强大的解决方案(将仅环)

for line in file: 
    match = re.search("Subject:\ (.*)", line, re.IGNORECASE) 
    if match: 
     subj = match.group(1) 
     break