使用命令行参数在系统Web浏览器中启动URL

时间:2014-06-30 12:16:58

标签: python argument-passing

我想用参数执行脚本,这些参数必须发送到URL。

那么,主要问题是,如何完成这项任务?

这是我的测试脚本,我使用了sys.argv ...

#!/usr/bin/python
import sys, os

print "The name is :", sys.argv[0]
print "number of arguments :", len(sys.argv)
print "arguments are :", str(sys.argv)

2 个答案:

答案 0 :(得分:0)

可以通过sys.argv数组访问脚本的参数。例如:

import sys

if len(sys.argv) == 3:
   print "http://www.google.de?q=%s&%s" % (sys.argv[1], sys.argv[2])
else:
   print "Usage: <Explain params here>"

可以通过sys.argv数组中的索引访问与命令行中的空格分隔的每个参数。

这是你要找的吗?

编辑:

如果你有一个更复杂的用例,你需要一个更复杂的argmument解析器,你可以使用python的argparse模块。

答案 1 :(得分:0)

类似(Python 3代码):

import webbrowser
import argparse


parser = argparse.ArgumentParser(description='Accept URL parameters on the command line.')
parser.add_argument('UserID', metavar='UID', type=str, nargs=1,
                   help='The User ID')
parser.add_argument('UserName', metavar='UName', type=str, nargs=1,
                    help = 'The User Name')

args = parser.parse_args()
url = 'http://stackoverflow.com/users/%s/%s' % (args.UserID[0], args.UserName[0])
print(url)
webbrowser.open(url)

听起来你想要非可选的命令行参数 - 所以argparse似乎要走了,请参阅文档中的选项和参数等。