1. 程式人生 > 其它 >python各種擴充套件庫學習

python各種擴充套件庫學習

一、錯誤重試庫

  我們再寫編寫程式(尤其是與網路請求相關程式)時,比如執行網路爬蟲任務時,經常會遇到偶爾發生請求失敗的情況。這時若只是簡單的捕捉錯誤然後

  一)錯誤重試庫之retry或retrying的retry方法

  1、retry的retry方法

安裝retry庫
pip install retry

  可配置引數

def retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1, jitter=0, logger=logging_logger):
    """Return a retry decorator.
:param exceptions:捕獲異常或異常元組。 預設:Exception。 :param tries:Exception最大嘗試次數。 預設值:-1(無限)。 :param delay:嘗試之間的初始延遲。 預設值:0。 :param max_delay:延遲的最大值。 預設值:無(無限制)。 :param backoff:乘法器應用於嘗試之間的延遲。 預設值:1(無退避)。 :param jitter:額外的秒數新增到嘗試之間的延遲。 預設值:0。 如果數字固定,則隨機如果範圍元組(最小值,最大值) :param logger:logger.warning(
fmt,error,delay)將在失敗嘗試中呼叫。 預設值:retry.logging_logger。 如果無,則記錄被禁用。 """

  引用庫

from retry import retry

@retry()
def make_trouble():
    print('retrying')
    raise


if __name__ == '__main__':
    make_trouble()

 

 

  2、retrying的retry方法

安裝retrying庫

pip install retrying

  重要引數

stop_max_attempt_number:在停止之前嘗試的最大次數,最後一次如果還是有異常則會丟擲異常,停止執行,預設為5次

wait_random_min:在兩次呼叫方法停留時長,停留最短時間,預設為0,單位毫秒

wait_random_max:在兩次呼叫方法停留時長,停留最長時間,預設為1000毫秒

retry_on_result:指定一個函式,如果指定的函式返回True,則重試,否則丟擲異常退出

retry_on_exception: 指定一個函式,如果此函式返回指定異常,則會重試,如果不是指定的異常則會退出

 

  引用庫

from retrying import retry

@retry()
def make_trouble():
    print('retrying')
    raise


if __name__ == '__main__':
    make_trouble()

 

 

  二)錯誤重試庫之tenacity

安裝庫
pip install tenacity

  

  引用庫

import random
from tenacity import retry

@retry
def demo_func1():
    a = random.random()
    print(a)

    if a >= 0.1:
        raise Exception

demo_func1()

  使用說明見:https://mp.weixin.qq.com/s/-GLHw3V6uSD-nKUcmTrTJA