2012-04-18 96 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