小编S. *_*Naj的帖子

Python的asyncio.gather()似乎没有异步运行任务

我需要异步运行 20 个任务(每个任务运行相同的函数,但具有不同的参数)。每个任务都使用Python 的yfinanceAPI 模块。这是我当前的方法:

  1. 定义一个包含 20 个元素的列表args;每个元素都是要传递给相应任务的参数。
  2. 定义一个异步函数get_data,我将运行该函数 20 次,每次使用不同的参数。
  3. 定义一个异步函数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)

asynchronous python-3.x python-asyncio yfinance

3
推荐指数
1
解决办法
2508
查看次数

Python 3.7.0:如何将日期时间格式化为mm-dd-yy hh:mm:ss?

如何将日期时间格式化为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中打印日期时间,而不是像我一样手动进行。请帮忙。谢谢。

datetime date datetime-format python-3.x python-datetime

0
推荐指数
1
解决办法
9029
查看次数