微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何制作一个带参数的命令行程序?

我怎样才能做一个命令行,所以我可以用一些参数在Windows上执行我的程序…

例如:

C:/Program/App.exe -safemode

在linux中更改以前的命令

在应用程序中调用“plink.exe”是安全的

更改键盘布局boot2docker tinycore

适用于Linux的Windows资源编辑器

什么是Windows命令行参数编码?

使用带有空值的命令将csv文件按三列sorting?

需要删除空格分隔string中特定位置的特定引号,同时保留其他引号

C#程序将不会从Java执行

存储脚本输出删除ANSI代码

什么是linux命令行来检查内核空间和用户空间使用的内存

看看标准库中的getopt和optparse模块,关于更高级的argparse模块也可以说很多好东西。

通常你只需要访问sys.argv 。

我觉得你也想生成一个“可执行”,你可以运行独立….为此,你使用py2exe

这是一个完整的example.py :

import optparse parser = optparse.OptionParser() parser.add_option("-s","--safemode",default = False,action = "store_true",help = "Should program run in safe mode?") parser.add_option("-w","--width",type = "int",default = 1024,help = "Desired screen width in pixels") options,arguments = parser.parse_args() if options.safemode: print "Proceeding safely" else: print "Proceeding dangerously" if options.width == 1024: print "running in 1024-pixel mode" elif options.width == 1920: print "running in 1920-pixel mode"

这里是一个完整的setup.py ,将上面的example.py转换成example.exe (在dist子目录中):

from distutils.core import setup import py2exe import sys sys.argv.append('py2exe') setup( options = {'py2exe': dict(bundle_files=1,optimize=2)},console = ["example.py"],zipfile = None,)

你说的参数传递给一个Python脚本?

'你可以通过访问他们

import sys print sys.argv

或者可以使用更复杂的getopt模块。

不是一个Python的家伙(但无论如何),但我的谷歌福发现这假设你的意思是“处理命令行参数”:

http://www.faqs.org/docs/diveintopython/kgp_commandline.html

使用optparse.OptionParser 。

from optparse import OptionParser import sys def make_cli_parser(): """Makes the parser for the command line interface.""" usage = "python %prog [OPTIONS]" cli_parser = OptionParser(usage) cli_parser.add_option('-s','--safemode',action='store_true',help="Run in safe mode") return cli_parser def main(argv): cli_parser = make_cli_parser() opts,args = cli_parser.parse_args(argv) if opts.safemode: print "Running in safe mode." else: print "Running with the devil." if __name__ == '__main__': main(sys.argv[1:])

正在使用:

$ python opt.py Running with the devil. $ python opt.py -s Running in safe mode. $ python opt.py -h Usage: python opt.py [OPTIONS] Options: -h,--help show this help message and exit -s,--safemode Run in safe mode

或者你只是问如何打开一个命令行?

进入开始菜单,点击“运行”(或者只是在Windows 7中输入),输入“cmd”

这将打开一个命令外壳。 鉴于你的问题被标记为Python,我不知道它将被编译成一个EXE,你可能不得不键入“python(你的源代码).py -safemode”。

其他意见解决了如何处理参数。 如果你想让你的python程序一个exe文件,你可能想看看py2exe 。

这不是必需的,但你提到了App.exe而不是App.py

你正在问一个有几个级别的答案的问题。

首先,命令行被传入数组sys.argv。 argv是C和Unix语言的历史名称。 所以:

~/p$ cat > args.py import sys print "You have ",len(sys.argv),"arguments." for i in range(len(sys.argv)): print "argv[",i,"] = ",sys.argv[i] ~/p$ python args.py 34 2 2 2 You have 5 arguments. argv[ 0 ] = args.py argv[ 1 ] = 34 argv[ 2 ] = 2 argv[ 3 ] = 2 argv[ 4 ] = 2

这适用于MS Windows和Unix。

其次,你可能会问:“我如何得到好的参数?在MS Windows中处理/帮助还是在Linux中帮助?

那么,有三个选择,试图做你想要的。 二, optparse和getopt已经在标准库中,而argparse正在进行中。 所有这三个都是以sys.argv字符串数组开头的库,对命令行参数的描述,并返回某种数据结构或类,从中可以获得您的选择。

getopt做最小的工作。 它不提供“/帮助”或“ – 帮助”。

optparse做更详细的工作。 它提供了“/ help”和短期和长期版本的选项,例如“-v”和“–verbose”。

argparse处理厨房水槽,包括“/ help”,短和长命令以及子命令结构,就像你在源代码控制“git add ….”中看到的那样。

当你转向更丰富的解析时,你需要给解析器更多关于你想要命令行参数的细节。 例如,如果您希望使用–help参数来打印参数,则需要传递一个较长的参数描述。

第三,你可能会问一个只处理命令行选项,环境变量和配置文件的工具。 Python目前每个都有单独的工具。 也许我会写一个统一的,你将需要: – 通过argparse或getopt等解析命令行参数 – 环境变量,从os.environ [] – 配置文件从ConfigFile或plistlib等,并建立自己的回答“什么是设置”?

希望这完全回答你的问题

其中一种方法

import sys print sys.argv

>>>python arg.py arg1 arg2 ['arg.py','arg1','arg2']

>>>python arg.py arg1 arg2 ['arg.py','arg2']

sys.argv是一个包含所有参数(也是脚本/程序名)的列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐