給定變數狀態作為引數,我想創建一個每天在特定日期運行的腳本。
狀態可以有兩個條目:“過去”或“現在”。
我想將當前日期保存為引數,然后在函式中使用它來進行不同的呼叫。所以當前時間也成為一個引數。
例如,如果我將腳本設定為每天 2:30 運行,我希望能夠檢索日期并將其用作引數
我想以今天作為引數運行狀態為“現在”的腳本,例如,對于“過去”,使用今天減去 4 小時。
如果我的腳本運行時間過長,我想使用今天的日期四舍五入到最后半小時。
因此,如果我在 2022 年 11 月 8 日 5:32 運行我的腳本,我應該得到 year=2022 month=11 day = 8 time =5:30 for the present and year=2022 month=11 day = 8 time =4 :30 過去
def function(past_or_present,year,month,day,time):
if past_or_present =="past":
url = 'https://awebsite{year}/{month}/{day}/{time-1hour}
resp = requests.get(url=url).text
if past_or_present =="present":
url = 'https://awebsite{year}/{month}/{day}/{time}
resp = requests.get(url=url).text
function("past")
function("present")
uj5u.com熱心網友回復:
您可能希望使用python 附帶的datetime模塊。
import time
from datetime import date
today = date.today()
day = today.day
month = today.month
year = today.year
結合時間模塊,它具有一些很棒的內置函式,可以將時間從一個轉換到另一個。
datetime 模塊甚至有一個timedelta方法來計算給定兩個日期或時間的時間差。
據,直到...為止
...腳本運行時間過長我想使用今天的日期四舍五入到最后半小時
這將更多地進入雜草。有幾種不同的方法可以計算一個函式需要多長時間,但是要主動監視和終止一個耗時太長的行程將是很棘手的。
默認情況下,Python 是一個單執行緒應用程式,這意味著您只能同時運行一件事。那么,如果某件事花費的時間過長,您將如何主動監控、停止該程序并開始一個具有不同價值的新程序呢?當然還有另一個執行緒/行程。
如果這個函式預計需要很長時間并且通過粗略的計算嚴重影響 CPU,那么多處理庫可能會很好。
如果行程是 IO/網路系結的,并且您有幾個周期希望只等待資料,那么執行緒模塊非常棒。不過,您仍然必須處理全域解釋器鎖,這會變得很復雜。GIL 的缺點是 Python 鎖定了它使用的記憶體,因此多個行程無法訪問并導致競爭條件。
還有asyncio的選項。
TL; DR,您需要生成某種形式的行程/執行緒,然后監視您嘗試運行的功能,如果需要太長時間就將其殺死,然后運行另一個功能。
這是您可能正在尋找使用多處理模塊的示例。
有人可能已經構建了一個第三方模塊,可以更輕松地完成計時和結束,但這些是 Python 附帶的模塊。如果有人知道,請發表評論。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/530815.html
上一篇:在url/firebase-messaging-sw.js從Firebase公開API密鑰是否存在安全風險?[復制]
