python方法返回的结果互为参数_使用命令行传递参数的 Python 实例

2017-06-18

新横滨

/python/2017/06/18/argv.html

python

nil

Python 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。

Python 编程简明教程 https://jsntn.com/python

前几天阿狗哥问了我标题的这个问题,我想了个实例,也记录下来。

先解释下标题:使用命令行传递参数

举个例子,一个 Python 脚本 test.py,我们希望通过执行 python test.py --argv1 item1 --argv2 item2 ... --help --version 这样的方式,来运行脚本中的方法或功能,获取脚本中的数值。

其中:--argv1, --argv2… 为脚本中定义的固定形式;item1, item2 可能为一个固定列表中的值,也可能为非固定的字符串等,--help, --version 从脚本中取得内容。

提到 Python 的命令行参数,首先就会让人想到 sys.argv,其包含了命令行参数的列表。例如 sys.argv[] 是用来获取命令行参数的,sys.argv[0] 表示代码文件本身的文件路径,比如在命令行输入 python test.py --help,那么 sys.argv[0] 输出 test.py,sys.argv[1] 会输出 –help。补充:sys.startswith() 用来判断一个对象以什么开头,例如在 Python 命令行输入 ‘abc’.startswith(‘ab’) 就会返回 True。

以下供参考的实例:import sys

"""

demo:

sys.argv.python --hi Jason --write name/all --version --help

"""

def write(input):

obj = open('./output.txt', 'w')

obj.write(input)

obj.close()

#print "sys.argv:", sys.argv

#print "sys.argv[0]:", sys.argv[0]

dict = {}

for i in sys.argv:

if '--' in i:

try:

dict[i[2:]] = sys.argv[sys.argv.index(i)+1]

except:

dict[i[2:]] = 'null'

#print dict

if 'hi' in dict:

global content

content = 'Hello! ' + dict['hi']+'. ' + 'How are you today?'

print content

if 'write' in dict:

if dict['write'] == 'name':

write(dict['hi'])

if dict['write'] == 'all':

write(content)

if 'version' in dict:

print 'version 1.0'

if 'help' in dict:

print 'God helps those who help themselves.'

- EOF -

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值