我需要异步运行 20 个任务(每个任务运行相同的函数,但具有不同的参数)。每个任务都使用Python 的yfinance
API 模块。这是我当前的方法:
args
;每个元素都是要传递给相应任务的参数。get_data
,我将运行该函数 20 次,每次使用不同的参数。main
,用于asyncio.gather
异步运行 20 个任务。这是(伪)代码:
import asyncio
stocks = []
args = ['arg1', 'arg2', ... , 'arg20']
async def get_data(arg):
stock = Stock(arg)
# do some yfinance calls
return stock
async def main():
global stocks
tasks = [asyncio.ensure_future(get_data(arg)) for arg in args]
stocks = await asyncio.gather(*tasks)
asyncio.run(main())
print(stocks) # should be a list of 20 return values from the 20 …
Run Code Online (Sandbox Code Playgroud) 如何将日期时间格式化为mm-dd-yy hh:mm:ss?我用下面的代码做到了:
import datetime
t = datetime.datetime.now()
s = str(format(t.second, '02d'))
m = str(format(t.minute, '02d'))
h = str(format(t.hour, '02d'))
d = str(format(t.day, '02d'))
mon = str(format(t.month, '02d'))
y = str(t.year)
x = '-'
z = ':'
print(mon + x + d + x + y + ' ' + h + z + m + z + s)
Run Code Online (Sandbox Code Playgroud)
但是问题是,首先,年份以YYYY而不是YY打印(我只想要年份的最后两位数字)。第二,我确定有一种更简单的方法可以在mm-dd-yy hh:mm:ss中打印日期时间,而不是像我一样手动进行。请帮忙。谢谢。