簡體   English   中英

python 每 2 分鍾運行一次腳本,但失敗

[英]python run script every 2 mins, but failed

import pandas as pd 
import numpy as np
import datetime
import schedule
import time

ticks = api.ticks(api.Contracts.Stocks["2330"], "2022-08-09")
df = pd.DataFrame({**ticks})
df.ts = pd.to_datetime(df.ts)
df = df[df.volume>200]
df

上面的代碼,工作正常。 我得到了數據。

下面的代碼,不起作用。 我什么都沒有。 它只是繼續運行,但沒有數據到來。

我的目標是每 2 分鍾自動運行一次代碼(接收數據)。

我無法弄清楚 go 哪里錯了。
我需要一些幫助。 試了很多次,也花了很多時間。

import pandas as pd 
import numpy as np
import datetime
import schedule
import time

def show_datafr():
 ticks = api.ticks(api.Contracts.Stocks["2330"], "2022-08-09")
 df = pd.DataFrame({**ticks})
 df.ts = pd.to_datetime(df.ts)
 df = df[df.volume>200]
 df
 
schedule.every(4).seconds.do(show_datafr)

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

如果你想每 2 分鍾運行一次,那么時間表就很奇怪了。 它應該是: schedule.every(2).minutes.do(show_datafr)

代替:

schedule.every(4).seconds.do(show_datafr)

因為你寫的是每 4 秒運行一次,並且可能無法在 4 秒內完成操作,導致它沒有 output

要顯示df你可以從IPython.display導入display

您可能希望使用pip install ipython安裝它,以防您沒有安裝它。

import pandas as pd 
import numpy as np
import datetime
from schedule
import time
from IPython.display import display     # Additional import


def show_datafr():
    ticks = api.ticks(api.Contracts.Stocks["2330"], "2022-08-09")
    df = pd.DataFrame({**ticks})
    df.ts = pd.to_datetime(df.ts)
    df = df[df.volume>200]

    display(df)  # To display dataframe


schedule.every(2).minutes.do(show_datafr)  # Remember you said every 2 minutes
    
while True:
    schedule.run_pending()
    time.sleep(1)

暫無
暫無

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

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