gpt4 book ai didi

python - 尝试,除了不能在 Python 中工作

转载 作者:行者123 更新时间:2023-11-28 22:23:43 25 4
gpt4 key购买 nike

我正在尝试通过添加 try 和 except block 来向该程序添加错误处理,以防万一某些东西不起作用,这样程序就不会在处理数据时出现错误时关闭。 (这是我的代码的简化版本)。当我以这种方式运行它时(假设时间是准确的),似乎没有任何效果 - report_scheduler 中的函数实际上从未运行过。

这是我正在查看的代码:

import schedule

def forex_data_report():
from forex_python.converter import CurrencyRates
import csv

current_dir = os.getcwd()

date_time = time.strftime('%m-%d-%Y_at_%I-%M-%S-%p')

c = CurrencyRates()
usd_eur = c.get_rate('EUR', 'USD')
usd_gbp = c.get_rate('GBP', 'USD')
usd_yen = c.get_rate('JPY', 'USD')
usd_aud = c.get_rate('AUD', 'USD')
eur_gbp = c.get_rate('GBP', 'EUR')

clean_file_location = current_dir + '\\Reports\\Forex_Data\\Forex_Data.csv'
with open(clean_file_location, 'a', newline='') as outfile:
writer = csv.writer(outfile)
writer.writerow([date_time, usd_eur, usd_gbp, usd_yen, usd_aud, eur_gbp])

send_outlook_w_attach('Key Currencies', clean_file_location)

print ('Updated Key Currencies Data.')

def competitor_stock_data_report():
import datetime
import pandas_datareader.data as web
import csv

current_dir = os.getcwd()

date_print = time.strftime('%m-%d-%Y_at_%I-%M-%S-%p')
date_time = datetime.datetime.now()
date = date_time.date()

stocklist = ['LAZ','AMG','BEN','LM','EVR','GHL','HLI','MC','PJT','MS','GS','JPM','AB']
start = datetime.datetime(date.year-1, date.month, date.day-1)
end = datetime.datetime(date.year, date.month, date.day-1)

clean_file_location = current_dir + '\\Reports\\XXX\\Stock_Data.csv'

for x in stocklist:
df = web.DataReader(x, 'google', start, end)

with open(clean_file_location, 'a', newline='') as outfile:
writer = csv.writer(outfile)
writer.writerow([date_print, x, df.loc[df.index[0], 'Close'], df.loc[df.index[-1], 'Close']])

send_outlook_w_attach('Competitor Stock Data vs. XXX', clean_file_location)

print ('Updated XXX Competitor Stock Performance Data.')

def report_scheduler():
try:
schedule.every().day.at("00:00").do(forex_data_report)
except:
pass

try:
schedule.every().friday.at("00:01").do(competitor_stock_data_report)
except:
pass

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


if __name__ == '__main__':

print('Starting background - HANDLER - process...')

report_scheduler()

我知道 pass 不是错误处理,但我确实需要某种方式来告诉程序继续,即使数据没有更新/发生错误也是如此。

谢谢。

最佳答案

如果没有真正深入您的代码,可能会引发异常然后被捕获,然后 pass 语句意味着您没有得到任何输出。

您是否检查过它在没有 try except block 的情况下运行?

此外,这可能会有所帮助:

except Exception as e:
print("Exception raised: {}".format(e))

至少你会得到异常的打印输出。您可能还想查看记录异常。

关于python - 尝试,除了不能在 Python 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46852209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com