最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python如何輕松實現(xiàn)定時執(zhí)行任務

 更新時間:2022年10月24日 09:35:12   作者:Python數(shù)據(jù)挖掘  
這篇文章主要為大家詳細介紹了Python如何在Windows下不用任務管理器就實現(xiàn)輕松定時執(zhí)行任務,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下

下面這個截圖,就是使用 schedule 定時執(zhí)行 Notebook 的例子

import schedule
import time
import papermill as pmdef job():
    pm.execute_notebook(
       'input.ipynb',
        'logs/oo.ipynb'
    )
schedule.every(10).seconds.do(job)
while True:
    schedule.run_pending()
    time.sleep(1)

所需要的包就這么幾個(ipywidgets 是為了顯示進度條,就不多做介紹了),

pip install schedule papermill ipywidgets

下面分別介紹下各個包的用途。

schedule

從官方提供的例子可以看出,只要會基本的英語就能明白如何方便定時了

import schedule
import time

# 要執(zhí)行的任務
def job():
    print("I'm working...")

#每隔10s執(zhí)行job
schedule.every(10).seconds.do(job)
#每隔10分鐘執(zhí)行job
schedule.every(10).minutes.do(job)
#每小時執(zhí)行job
schedule.every().hour.do(job)
#在每天10:30分執(zhí)行job
schedule.every().day.at("10:30").do(job)
#每5到10分鐘(隨機數(shù))執(zhí)行job
schedule.every(5).to(10).minutes.do(job)
#每星期一執(zhí)行job
schedule.every().monday.do(job)
#每星期三13:15執(zhí)行job
schedule.every().wednesday.at("13:15").do(job)
#每天歐洲阿姆斯特丹時區(qū)的12:42執(zhí)行job
schedule.every().day.at("12:42", "Europe/Amsterdam").do(job)
#在每分鐘的第17秒開始執(zhí)行job
schedule.every().minute.at(":17").do(job)

def job_with_argument(name):
    print(f"I am {name}")
#每10秒鐘執(zhí)行一次job_with_argument(帶參數(shù))
schedule.every(10).seconds.do(job_with_argument, name="Peter")

while True:
    schedule.run_pending()
    time.sleep(1)

更多應用可以看官方文檔[1]。

如果你只是在 Python 代碼里定時一個或者多個工作,你并不需要 papermill,使用 papermill,是為了可以方便地定時執(zhí)行你的 Notebook。

papermill

papermill[2]是一個用于參數(shù)化、執(zhí)行和分析 Jupyter Notebooks 的工具。

也許您有一份財務報告,您希望在一個月的第一天或最后一天或一年的開始或結束時使用不同的值運行,使用參數(shù)可以使這項任務更容易。你想運行一個 Notebook 并根據(jù)它的結果,選擇一個特定的 Notebook 來運行嗎?您現(xiàn)在可以以編程方式 執(zhí)行工作流程,而無需手動從筆記本復制和粘貼到筆記本。

我們即可以像上面的例子那樣以 API 的方式使用,也可以以命令行的方式來運行,例如, 運行本地input.ipynb,參數(shù)分別為alpha和l1_ratio把結果保存到 AWS 的 s3 上,

papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1

使用下面這段代碼,我們可以把 notebook 中 print 輸出轉移輸出到日志里,

from datetime import datetime
from datetime import timedelta
import logging, sys,re
#日志的名字以時間命名,方便查找
_date_start = (datetime.now() +timedelta(hours=0)).strftime('%Y-%m-%d %H:%M:%S')
xxx = re.sub(r'[-\ \:]','',_date_start)
filename=f'logs/{xxx}.log'
#日志的基本設置
logging.basicConfig(filename=filename, level=logging.DEBUG
                    , format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
logger = logging.getLogger()
# 將print轉移輸出到日志中
sys.stderr.write = logger.error
sys.stdout.write = logger.info

參考資料

[1]官方文檔: https://schedule.readthedocs.io/

[2]papermill: https://github.com/nteract/papermill

到此這篇關于詳解Python如何輕松實現(xiàn)定時執(zhí)行任務的文章就介紹到這了,更多相關Python定時執(zhí)行任務內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

海安县| 隆尧县| 新和县| 北碚区| 田林县| 特克斯县| 吉隆县| 云霄县| 苍梧县| 顺昌县| 崇左市| 类乌齐县| 北海市| 丹巴县| 乾安县| 扎兰屯市| 鄂温| 德令哈市| 澄迈县| 崇信县| 年辖:市辖区| 东乌| 靖远县| 嘉鱼县| 谢通门县| 洛扎县| 舞钢市| 锦屏县| 雷山县| 彩票| 永和县| 阳东县| 定西市| 息烽县| 文昌市| 伊金霍洛旗| 胶州市| 观塘区| 手游| 乌兰县| 商都县|