如何将多个Python异步函数的输出结果拼接为单个内容?
解决异步函数输出拼接问题
你当前的代码里,每个异步函数都是直接调用print()输出内容,所以每个结果会单独占一行。要把所有输出拼接成整体,核心是让函数返回结果而非直接打印,之后统一收集并拼接。
修改后的代码如下:
import string import asyncio import random # 补上缺失的random模块导入 async def get_random_string(length): letters = string.ascii_uppercase result_str = ''.join(random.choice(letters) for i in range(length)) return result_str # 返回结果而非直接打印 async def my_function1(): return str(random.randint(0,9)) # 返回字符串格式的结果 async def my_function2(): return str(random.randint(100,999)) async def my_function3(): return str(random.randint(100000,999999)) if __name__ == "__main__": loop = asyncio.get_event_loop() # 用gather收集所有异步任务的返回结果 results = loop.run_until_complete(asyncio.gather( my_function1(), get_random_string(3), my_function2(), get_random_string(4), my_function3() )) # 拼接所有结果并打印 print(''.join(results))
修改说明:
- 补上了原代码缺失的
import random,否则会触发运行错误 - 将所有函数里的
print()替换为return,让每个异步任务生成结果后返回,而不是直接输出 - 通过
asyncio.gather()的返回值拿到所有任务的结果列表,再用''.join(results)把列表里的所有字符串拼接成一个整体,最后一次性打印
内容的提问来源于stack exchange,提问作者kaycia_g
相关产品推荐
相关产品推荐

