繁体   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