[英]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.