簡體   English   中英

將結果保存到 txt 文件 python

[英]Save results to a txt file python

我想將這些電子郵件結果保存到目錄中的 results.txt 文件中。

def parseAddress():
    try:
        website = urllib2.urlopen(getAddress())
        html = website.read()

        addys = re.findall('''[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?''', html, flags=re.IGNORECASE)

        print addys

    except urllib2.HTTPError, err:
        print "Cannot retrieve URL: HTTP Error Code: ", err.code
    except urllib2.URLError, err:
        print "Cannot retrive URL: " + err.reason[1]

    # need to write the addys data to results.txt   
    with open('results.txt', 'w') as f:
       result_line = f.writelines(addys)

您錯誤地將“with”語句縮進了一個空格。 這使得它對較早的塊具有主觀性。 我認為任何有自尊的 Python 解釋器都會將此標記為與任何早期的縮進不匹配,但它似乎污染了您的輸出。

另外,請考慮增加一些跟蹤打印語句,看看你的代碼執行。 該輸出本身通常可以向您展示問題,或引導我們解決問題。 您應該始終為我們提供實際輸出,而不僅僅是一般描述。

在函數末尾使用return addys print只會輸出到您的屏幕。

為了檢索addys ,您需要在with語句中調用該函數或創建一個包含parseAddress()結果的變量。

您可以通過簡單地調用函數來節省變量將使用的內存,如下所示:

with open('results.txt', 'w') as f:
    f.write ( parseAddress() )

您需要修復縮進,這在 Python 中很重要,因為它是定義代碼塊的唯一方法。

您的try塊中的語句也太多。

def parseAddress():
    website = None
    try:
        website = urllib2.urlopen(getAddress())
    except urllib2.HTTPError, err:
        print "Cannot retrieve URL: HTTP Error Code: ", err.code
    except urllib2.URLError, err:
        print "Cannot retrive URL: " + err.reason[1]

    if website is not None:
        html = website.read()
        addys = re.findall('''[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?''', html, flags=re.IGNORECASE)
        print addys

        # need to write the addys data to results.txt   
        with open('results.txt', 'w') as f:
            result_line = f.writelines(addys)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM