一、sys.argv概述
sys.argv是Python中的一个内置模块,用于获取命令行参数。在Python中,您可以使用sys模块来访问sys.argv。sys.argv是一个包含命令行参数的列表。列表的第一个元素是脚本的名称,其余的元素是从命令行传递给脚本的参数。当我们运行Python脚本时,在命令行中指定的任何参数都会存储在sys.argv列表中。
import sys
print('脚本名称:',sys.argv[0])
print('命令行参数:',sys.argv[1:])
输出结果:
$ python3 demo.py arg1 arg2 arg3 脚本名称: demo.py 命令行参数: ['arg1', 'arg2', 'arg3']
二、示例1:解析命令行参数
让我们看一下如何使用sys.argv来读取并解析命令行参数。我们将创建一个简单的程序,在命令行中传递几个参数,并将它们打印出来:
import sys
def main():
print(sys.argv)
if len(sys.argv) > 1:
print('传递的参数有:')
for arg in sys.argv[1:]:
print(arg)
if __name__ == '__main__':
main()
输出结果:
$ python3 demo.py hello world ['demo.py', 'hello', 'world'] 传递的参数有: hello world
代码解释:
- 首先导入sys这个内部模块
- 在main函数中,打印出sys.argv的值。如果命令行没有参数,则sys.argv将仅包含一个元素,即脚本名称。
- 使用if语句检查参数是否存在。如果存在,则循环遍历剩余的参数并将它们输出
- 最后在if __name__ == ‘__main__’中调用main函数
三、示例2:在命令行中使用参数
让我们看一下如何在程序中使用我们从命令行传入的参数。在下面的例子中,我们将求出命令行传入的数字的平均值:
import sys
def main():
if len(sys.argv) > 1:
nums = [int(num) for num in sys.argv[1:]]
avg = sum(nums) / len(nums)
print('平均值是:{}'.format(avg))
else:
print('没有足够的参数')
if __name__ == "__main__":
main()
输出结果:
$ python3 demo.py 1 2 3 4 5 平均值是:3.0
代码解释:
- 首先导入sys模块
- 在main函数中,使用if语句检查是否检测到足够的参数。如果找到了足够的参数,则将参数转换为数字,并求出其平均值。然后使用print语句输出结果
- 最后在if __name__ == ‘__main__’中调用main函数
四、示例3:带选项的命令行参数
在本示例中,我们将使用一个选项参数,该选项参数在Python脚本上执行时将决定我们要执行的操作。我们将在脚本中添加一些if语句,这些语句将根据选项参数执行不同的操作。
import sys
def main():
if len(sys.argv) < 2:
print('选项参数缺失,请参考-h或--help查看帮助')
elif sys.argv[1] in ['-h', '--help']:
help()
elif sys.argv[1] == '-v':
version()
elif sys.argv[1] == '-l':
list_files()
else:
print('选项参数无效,请参考-h或--help查看帮助')
def help():
print('使用方法:')
print('-h, --help: 打印帮助信息')
print('-v: 打印版本信息')
print('-l: 列出当前目录的文件')
def version():
print('版本号:1.0.0')
def list_files():
import os
files = os.listdir('.')
print('文件列表:')
for file in files:
print(file)
if __name__ == '__main__':
main()
输出结果:
$ python3 demo.py -h 使用方法: -h, --help: 打印帮助信息 -v: 打印版本信息 -l: 列出当前目录的文件 $ python3 demo.py -v 版本号:1.0.0 $ python3 demo.py -l 文件列表: file1.txt file2.py file3.jpg
代码解释:
- 在main函数中,如果命令行参数少于2个,则打印一条错误消息
- 如果命令行参数是-h或–help,则调用help函数打印帮助信息
- 如果命令行参数是-v,则调用version函数打印版本信息
- 如果命令行参数是-l,则调用list_files函数列出当前目录下的文件
- 如果命令行参数不是任何选项参数,则打印错误消息并退出程序。
五、小结
在Python中使用sys.argv可以轻松地从命令行中获取参数,并将其传递给脚本。这个方法非常有用,例如在需要根据不同的参数执行不同的操作时。本文介绍了如何在Python中使用sys.argv传递命令行参数,并提供一些示例来帮助您更好地理解。你可以使用sys.argv,并在Python脚本中解析和处理命令行参数,以便根据传递给脚本的参数执行各种操作。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/252954.html
微信扫一扫
支付宝扫一扫