Python 如果打印结果与之前相同,则不进行任何更改,否则打印新结果。每 10 分钟再次运行一次

我想每 10 分钟运行一次这个脚本,如果今天的结果相同,我不想再次打印它们,除非它们发生变化。这可能吗?不,我无论如何都不是程序员,这只是一种爱好。


我正在使用 Twilio 向我发送一条有关可用露营地的短信,但我不希望每 10 分钟收到相同的短信。我删除了 Twilio 代码,因为它包含我的帐户信息。预先感谢您的任何帮助。下面是我的代码。


from datetime import datetime

import pandas as pd

import requests

from tabulate import tabulate



result = []

for unit_id in range(5095, 5099):

    resp = requests.get(

        f"https://calirdr.usedirect.com/rdr/rdr/fd/"

        f"availability/getbyunit/{unit_id}/startdate/2020-10-30/nights/30/true?").json()

    result.extend(resp)


filter_by = ['UnitId', 'StartTime', 'IsFree', 'IsWalkin']

df = pd.DataFrame(result)

df = df.filter(items=filter_by)

df['StartTime'] = df['StartTime'].apply(lambda d: datetime.fromisoformat(d).strftime("%Y-%m-%d"))

df = df[df['IsFree']]

df = df[~df['IsWalkin']]

df['UnitId'] = df['UnitId'].replace([5095], 'Site 81')

df['UnitId'] = df['UnitId'].replace([5096], 'Site 82')

df['UnitId'] = df['UnitId'].replace([5097], 'Site 83')

df['UnitId'] = df['UnitId'].replace([5098], 'Site 84')

df['UnitId'] = df['UnitId'].replace([5099], 'Site 85')

print(tabulate(df, headers=filter_by))

以下是运行代码的结果。


    UnitId    StartTime    IsFree    IsWalkin

--  --------  -----------  --------  ----------

62  Site 83   2020-11-01   True      False

80  Site 83   2020-11-19   True      False

89  Site 83   2020-11-28   True      False


Process finished with exit code 0


慕桂英3389331
浏览 53回答 1
1回答

jeck猫

这将运行程序,等待十分钟,检查上一个结果是否与当前结果相同,如果是,则退出。所以你现在要做的就是弄清楚如何在第二天之前戒掉它:)//编辑:我编辑了与您的评论相对应的代码from datetime import datetimeimport pandas as pdimport requestsfrom tabulate import tabulateimport timedef main():    result = []    for unit_id in range(5095, 5099):        resp = requests.get(        f"https://calirdr.usedirect.com/rdr/rdr/fd/"        f"availability/getbyunit/{unit_id}/startdate/2020-10-30/nights/30/true?").json()        result.extend(resp)    filter_by = ['UnitId', 'StartTime', 'IsFree', 'IsWalkin']    df = pd.DataFrame(result)    df = df.filter(items=filter_by)    df['StartTime'] = df['StartTime'].apply(lambda d: datetime.fromisoformat(d).strftime("%Y-%m-%d"))    df = df[df['IsFree']]    df = df[~df['IsWalkin']]    df['UnitId'] = df['UnitId'].replace([5095], 'Site 81')    df['UnitId'] = df['UnitId'].replace([5096], 'Site 82')    return tabulate(df, headers=filter_by)res_before = ""while True:    res = main()    if res != res_before:        print(res)        res_before = res    else:        print("nothing changed")    time.sleep(600)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python