Sen*_*ran 24
试试这个简单的程序,将其命名为 program.py
import sys
print sys.argv
Run Code Online (Sandbox Code Playgroud)
并尝试执行
python program.py
python program.py a b c
python program.py hello world
Run Code Online (Sandbox Code Playgroud)
注意什么是argv现在.
ale*_*lex 13
它表示参数vector,它包含传递给程序的参数.第一个始终是程序名称.
例如,如果你像这样执行你的Python程序......
$ python your_script.py --yes
Run Code Online (Sandbox Code Playgroud)
...然后你的sys.argv
意志包含your_script.py
和--yes
.
aba*_*ert 12
在浪费时间"开始学习更高级别的代码"之前,您需要学习如何查找这样的信息.知道如何查找一个不熟悉的函数/类/变量,而不必等待30-60分钟让SO上的人回答你(并且显然在这个过程中支持多个downvotes),将比添加一个更有用一些信息到你的保留节目.
从内置帮助:
>>> import sys
>>> help(sys)
…
argv -- command line arguments; argv[0] is the script pathname if known
…
Run Code Online (Sandbox Code Playgroud)
这适用于任何模块.通常,模块中的各个类和函数都有更详细的信息(但这对argv不起作用,因为它只是一个list
,而列表没有自定义帮助).
SYS.ARGV
传递给Python脚本的命令行参数列表.argv [0]是脚本名称(无论这是否是完整路径名,它依赖于操作系统).如果使用解释器的-c命令行选项执行命令,则将argv [0]设置为字符串'-c'.如果没有脚本名称传递给Python解释器,则argv [0]为空字符串.
要循环标准输入或命令行上给出的文件列表,请参阅fileinput模块.
谷歌搜索"python argv"的第一个网络结果是Python作者Guido的博客文章,对你来说可能有点过于先进,但第二个是关于"命令行参数" 的教程.
由于大部分的这些事情告诉你,很多简单的脚本往往只使用fileinput
,而不是处理argv
直接,而更复杂的脚本经常需要使用argparse
(或optparse
,getopt
或其他的替代品,如果你需要使用Python 2.6或更早版本的工作).
sys.argv
恰到好处的一个例子是这个简单的程序将相对路径名转换为绝对路径(对于那些不在linux或其他平台上的那些带有abspath,GNU readlink或类似工具的内置程序):
import os, sys
print('\n'.join(os.path.abspath(arg) for arg in sys.argv[1:]))
Run Code Online (Sandbox Code Playgroud)
或者这个"添加"工具只添加了一堆数字(对于那些坚持使用cmd.exe或其他没有内置算术的有缺陷的shell):
import sys
print(sum(int(arg) for arg in sys.argv[1:]))
Run Code Online (Sandbox Code Playgroud)
您可以使用或不使用参数运行python程序.如果你使用参数,它们都在argv vector中.例如
PYTHON计划!!!
#!/usr/bin/python
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
Run Code Online (Sandbox Code Playgroud)
像这样运行脚本
$ python test.py arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)
结果是
Number of arguments: 4 arguments.
Argument List: ['test.py', 'arg1', 'arg2', 'arg3']
Run Code Online (Sandbox Code Playgroud)
示例来自 tutorialspoint
归档时间: |
|
查看次数: |
62948 次 |
最近记录: |