我有一个使用 argparse 模块的命令行脚本。
import argparse
def run():
print 'Running'
def export():
print 'Exporting'
def argument_parser():
parser = argparse.ArgumentParser()
parser.add_argument('run', action='store_true')
parser.add_argument('export', action='store_true')
return parser.parse_args()
args = argument_parser()
if args.run:
run()
else:
export()
现在从命令行运行时它工作得很好> python myfile.py run
etc.
然而使用pyinstaller
我已经从中创建了一个可执行文件,如果我打开 main.exe 文件,我会得到too few arguments
这是非常合乎逻辑的错误。但我希望能够打开(双击)main.exe(打开命令行工具)并让命令行等待我的命令(在本例中为运行或导出)。相反,它只是抛出错误并退出。
Use the cmd module https://docs.python.org/3/library/cmd.html创建一个外壳。
然后你可以使用cmd.Cmd()
您创建的类通过以下方式运行单个命令cmd.Cmd().onecmd() method https://docs.python.org/3/library/cmd.html#cmd.Cmd.onecmd;通过在sys.argv
命令行,用空格连接:
from cmd import Cmd
import sys
class YourCmdSubclass(Cmd):
def do_run(*args):
"""Help text for run"""
print('Running')
def do_export(*args):
"""Help text for export"""
print('Exporting')
def do_exit(*args):
return -1
if __name__ == '__main__':
c = YourCmdSubclass()
command = ' '.join(sys.argv[1:])
if command:
sys.exit(c.onecmd(command))
c.cmdloop()
帮助自动提供help
命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)