Call a functionfrom command line with arguments - Python (multiple function choices)
我正在使用Python 3.6,我有一个名为file.py的文件,有两个函数:
1 2 3 4 5 | def country(countryName): print(countryName) def capital(capitalName): print(capitalName) |
我需要从命令行调用这两种方法中的任何一种,但真诚地我不知道如何做到这一点,也用这种方式的参数。
1 | python file.py <method> |
有人知道怎么做吗?
问候!
要在程序中使用命令行参数,可以使用sys.argv。 阅读更多
1 2 3 4 5 6 7 8 9 10 11 12 | import sys def country(countryName): print(countryName) def capital(capitalName): print(capitalName) method_name = sys.argv[1] parameter_name = sys.argv[2] getattr(sys.modules[__name__], method_name)(parameter_name) |
要运行该程序:
1 | python file.py capital delhi |
输出:
1 | delhi |
您的输入参数method_name是一个字符串,因此无法直接调用。 因此我们需要使用
Command
你可以有一个模块来检查你的file.py,称之为executor.py,并调整你在file.py中的方法来处理参数列表
executor.py:
1 2 3 4 5 | import file import sys method = file.__dict__.get(sys.argv[0]) method(sys.argv[1:-1]) |