argparse 连接命令行选项

1 投票
6 回答
2806 浏览
提问于 2025-04-16 09:36

我刚开始学习Python,正在尝试给Python脚本传递命令行参数。我想把两个或更多的参数连接起来,然后放到一个字符串变量里,

比如,

myscript.py http://www.domain.com 1234

把它放到一个叫做 url 的字符串变量中,这样它的值就应该是 "http://www.domain.com:1234"

我不太确定怎么做到这一点。用 raw_input 和一些字符串处理来实现这件事是相对简单的,但我想知道是否也可以用 argparse 来完成。

6 个回答

1

为什么不这样做呢,

argstring = ':'.join(args[1:])
2

argparse 是一种解决这个问题的方法,但如果你只是刚开始学习,可能会觉得有点复杂(具体情况因人而异)。

如果你导入了 sys 模块,那么在命令行中传给你的参数会以字符串列表的形式保存在 sys.argv 里。

import sys
if len(sys.argv) < 3:
    print "Not enough args!"
    sys.exit(0)
# sys.argv[0] is the name of your script, the rest are parameters
url = "%s:%s" % (sys.argv[1], sys.argv[2])
print url
7
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('server') # first positional argument
parser.add_argument('port') # second positional argument
args = parser.parse_args()

url = '%s:%s' % (args.server, args.port)
print url

这段代码是用来做某些操作的,但具体的功能需要结合上下文来看。一般来说,代码块里可能包含了一些变量、函数或者其他编程元素,它们共同作用来实现特定的任务。

如果你对代码的具体内容有疑问,可以尝试逐行分析,看看每一行在做什么,或者查找相关的资料来帮助理解。记住,编程就像学习一种新的语言,慢慢来,多练习就会越来越熟悉。

总之,理解代码的关键在于多动手实践,遇到不懂的地方就去查资料,逐步积累经验。

撰写回答