Python 通过命令行将param传递给asyncio.run()函数

Python 通过命令行将param传递给asyncio.run()函数,python,Python,我对Python有点陌生 我想问一下,如何通过命令行将参数传递给异步函数 async def main(action): async with TelegramClient('session', api_id, api_hash) as client: time = get_time() if action == 'in': message = "It's " + time + ". Time to w

我对Python有点陌生 我想问一下,如何通过命令行将参数传递给异步函数

async def main(action):
    async with TelegramClient('session', api_id, api_hash) as client:
        time = get_time()
        if action == 'in':
            message = "It's " + time + ". Time to work."
        else:
            message = "It's " + time + ". Let's call it a day."

        await client.send_message('me', message)
asyncio.run(main(WHAT_SHOULD_I_USE_HERE_OTHER_THAN_input()))
argparse是一条路要走

最起码的例子:

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--argument', metavar='N', type=str)
args = parser.parse_args()
然后使用
pythonscript.py--argument my_argument
args.argument
将是字符串“my_argument”。

argparse是一种方法

最起码的例子:

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--argument', metavar='N', type=str)
args = parser.parse_args()

然后使用
pythonscript.py--argument my_argument
args.argument
将是字符串“my_argument”。

谢谢,它可以工作。顺便说一句,我自己也发现了另一个解决方案,它使用getopt,现在的行是
asyncio.run(main(getopt.getopt([action],[action]))
在命令行中,我将只在中输入
python app.py以获得结果。@TimothyGoh但请尝试使用ArgumentParser,因为它也适用于非nix系统。它更干净,将来可以扩展。谢谢,它可以工作。顺便说一句,我自己也发现了另一个解决方案,它使用getopt,现在的行是
asyncio.run(main(getopt.getopt([action],[action]))
在命令行中,我将只在
中输入
python app.py以获得结果。@TimothyGoh但请尝试使用ArgumentParser,因为它也适用于非nix系统。它更干净,将来可以扩展。