一、背景介紹
在編寫Python程序時,有時需要讓程序延時一段時間後再繼續執行下去。例如,需要在發送郵件後等待一段時間再執行下一步操作,或者需要在爬蟲程序中等待一段時間後再發送請求,避免因頻繁請求而被封IP。這時候,就需要使用time模塊中的sleep()方法。
二、time.sleep()方法詳解
1. 方法說明
time.sleep()方法可以使程序進入阻塞狀態,暫停執行一段時間,然後再繼續執行下面的代碼。其語法如下:
import time time.sleep(seconds)
其中,seconds是延時的秒數,可以是浮點數,表示等待的時間。
2. 實例演示
下面通過一個實例演示time.sleep()方法的用法,讓程序每隔1秒輸出一次數字:
import time
num = 0
while num < 10:
num += 1
print(num)
time.sleep(1)
上述代碼中,程序先初始化num為0,然後通過while循環每次加1,最終在輸出數字後使用time.sleep()方法使程序延時1秒。運行結果為:
1 2 3 4 5 6 7 8 9 10
三、應用場景舉例
1. 爬蟲程序中的延時操作
在爬蟲程序中,頻繁請求目標網站可能會被封IP。為了避免這種情況,可以在每次請求之間加入延時操作。
import requests
import time
url = 'https://www.baidu.com'
header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=header)
time.sleep(2)
上述代碼中,使用requests庫向百度網站發送請求,在請求後使用time.sleep()方法使程序延時2秒。這樣就避免了過於頻繁的請求而被封IP。
2. 發送郵件中的延時操作
在發送郵件時,可能需要等待一段時間後再執行下一步操作,例如發送多封郵件時需要在發送完一封郵件後等待一段時間再發送下一封。
import smtplib
import time
from email.mime.text import MIMEText
from email.header import Header
# 郵箱服務器設置
mail_host = 'smtp.163.com'
mail_user = 'sender@163.com'
mail_pass = 'password'
# 發送郵件
sender = 'sender@163.com'
receivers = ['receiver@163.com']
message = MIMEText('Python發送郵件測試', 'plain', 'utf-8')
message['From'] = Header('發送者', 'utf-8')
message['To'] = Header('接收者', 'utf-8')
message['Subject'] = Header('Python SMTP測試', 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25)
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print('郵件發送成功')
time.sleep(60) # 等待60秒
except smtplib.SMTPException:
print('郵件發送失敗')
上述代碼中,通過smtplib庫發送郵件,並在發送後使用time.sleep()方法延時60秒。這樣就可以等待郵件發送完畢再進行下一步操作。
四、總結
通過上述實例,我們可以使用time.sleep()方法實現Python程序的延時操作,避免過於頻繁的請求或操作。在實際編寫程序時,需要根據具體情況決定使用的延時時間,合理設置延時時間可以提高程序的可靠性和穩定性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/277716.html
微信掃一掃
支付寶掃一掃