簡體   English   中英

如何連續運行python腳本一天

[英]how to run a python script constantly for a day

我有一個在 Internet 上搜索內容的 python 腳本。腳本需要 2 分鍾才能完成。 2 分鍾后腳本將退出並完成工作。

但我想在我的電腦上不停地運行這個腳本一天。 這意味着我想在完成一天后重新運行腳本。

到目前為止,我嘗試過這樣的事情:

status = True
def setstatus(stat):
    global status
    if staus:
       status = not stat
timer = Timer(1440,setstatus,[True])
timer.start()

while status:
   # do the job

有什么建議嗎?

time.time()將為您提供當前時間(從某個時間原點開始的秒數,實際上是在 1970 年初)。 通過從當前時間添加秒數來計算結束時間,然后循環直到那時。

import time

end_time = time.time() + 86400

while time.time() < end_time:
    # do the job

顯然,這將繼續使用與您的工作所需的 CPU 一樣多的 CPU——您聲明的目標是“在我的計算機上不斷運行此腳本一天而不停止” ,這將滿足您的要求。 如果實際上您希望它通過在每次迭代中休眠一段時間來減少 CPU 消耗,那么您可以在循環中插入一個time.sleep(...) (休眠時間值以秒為單位)。

僅適用於基於 GNU/Unix 的系統。

您可以使用Cron

例如,每天上午 10 點運行一個腳本

在終端輸入crontab -e 0 10 * * * /path/to/script.py添加到提示文件中。

如果您按照問題所述將它與網絡爬蟲一起使用,則可以使用 shell 腳本來封裝您的 python 腳本。

#!/bin/bash

# setup variables
DATE=$(date +"%Y-%m-%d-%H-%M")
SCRIPT_FILE="path/to/python/script.py"
OUTPUT_FILE="path/to/save/outputs/${DATE}.json"

# activate virtualenv and run scrapy, for example
source path/to/venv/bin/activate
scrapy runspider ${SCRIPT_FILE} -o ${OUTPUT_FILE}

暫無
暫無

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

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