python中的sys.argv有啥用?print sys.argv啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的sys.argv有啥用?print sys.argv啥意思?相关的知识,希望对你有一定的参考价值。
参考技术A 就是调用fib函数#可以分开表示成:
n=int(sys.argv[1])
#[python fibo.py 1]这么执行
#sys.argv里面存放的是命令行参数,argv[0]是脚本名(fibo.py),argv[1]里是第一个参数(1),因为获取的是字符串,所以int转为整形
fib(n)如果解决了您的问题请采纳!
如果未解决请继续追问 参考技术B sys.argv返回的是命令行的
参数列表
比如你要运行一个hello.py的程序需要用命令行传入参数,比如名字
运行就是
python
hello.py
"张三"
那么
你可以通过
sys.argv一个列表["张三"]
然后在程序里面使用
比如输出print出来
从命令行向 python 程序传递参数,有啥比 sys.argv 更好的吗? [复制]
【中文标题】从命令行向 python 程序传递参数,有啥比 sys.argv 更好的吗? [复制]【英文标题】:Passing arguments to a python program from the command line, anything better than sys.argv? [duplicate]从命令行向 python 程序传递参数,有什么比 sys.argv 更好的吗? [复制] 【发布时间】:2013-03-28 19:26:05 【问题描述】:我有一个我想从终端运行的 python 脚本,它需要大约 10 个数字参数。到目前为止,我能想到的将参数传递给程序的唯一方法如下:
python myscript.py 10,20,30,,40
然后使用 sys.argv 分离参数,处理它们并使用它们。问题是,有时中间的某些参数需要为空白,以便程序使用其“默认值”。这意味着目前我需要在参数中使用逗号来指定一个值为空白的值,这很烦人,因为它违反了我在其他程序中看到的标准。
有没有更好的方法来解决这个问题?
干杯,
内森
操作系统:Ubuntu
python 版本:2.7
【问题讨论】:
docs.python.org/2/library/argparse.html 现在看看,干杯 也许将您的参数存储在一个文件中,然后从您的程序中读取它是一种解决方案。 【参考方案1】:首先,如果你有一些可以省略的参数,那些参数应该是选项而不是真正的参数。
Python 提供了不止一种解析参数的方法。最好的选择是argparse
,它具有大量功能,并且是继续开发的模块。如果您必须支持“旧”版本的 python,那么您可能会对optparse
感兴趣,即使它在 python3.2 中已被弃用。还有一个 getopt
模块,它模仿 C 的 getopt(不要不使用这个!出于历史原因并帮助人们使用这些旧式解析)
使用argparse
的简单示例可能是:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--option-name', action='store', dest='option_name_var')
parser.add_argument('numbers', type=int, nargs='*')
parsed = parser.parse_args() #parses sys.argv by default
print(parsed.numbers)
print(parsed.option_name_var)
可以用作:
$python example.py 1 2 3
[1, 2, 3]
None
$python example.py 1 2 3 --option-name "value"
[1, 2, 3]
value
$python example.py 1 2 3 --option-name
usage: example.py [-h] [--option-name OPTION_NAME_VAR] [numbers [numbers ...]]
example.py: error: argument --option-name: expected one argument
$python example.py --option-name
usage: example.py [-h] [--option-name OPTION_NAME_VAR] [numbers [numbers ...]]
example.py: error: argument --option-name: expected one argument
$python example.py --option-name 5
[]
5
$python example.py 1 2 "string"
usage: example.py [-h] [--option-name OPTION_NAME_VAR] [numbers [numbers ...]]
example.py: error: argument numbers: invalid int value: 'string'
注意数字如何自动转换为整数列表,如果值不是整数或缺少参数等,则会发出错误。
您还有一个默认帮助文本:
$python example.py -h
usage: example.py [-h] [--option-name OPTION_NAME_VAR] [numbers [numbers ...]]
positional arguments:
numbers
optional arguments:
-h, --help show this help message and exit
--option-name OPTION_NAME_VAR
【讨论】:
【参考方案2】:http://docs.python.org/2/library/argparse.html
argparse
会是你不错的选择。
【讨论】:
以上是关于python中的sys.argv有啥用?print sys.argv啥意思?的主要内容,如果未能解决你的问题,请参考以下文章