首页 > 编程语言 >使用python脚本传递参数:(三种方式可收藏)

使用python脚本传递参数:(三种方式可收藏)

时间:2023-05-06 14:55:39浏览次数:42  
标签:python argv 收藏 sys test 参数 print 三种

背景:使用python脚本传递参数在实际工作过程中还是比较常用,以下提供了好几种的实现方式:

一、使用sys.argv的数组传入
说明:使用sys.argv必须按照先后的顺序传入对应的参数;sys.argv则封装了传入的参数数据,作为数组的方式已经传入

import sys

print("传入参数的总长度为:", len(sys.argv))
print("type:", type(sys.argv))
print("function name:", sys.argv[0])
try:
    print("第一个传入的参数为:", sys.argv[1])
    print("第二个传入的参数为:", sys.argv[2])
except Exception as e:
    print("Input Error:", e)

通过命令行查看运行结果:

 

二、使用argparse包传入

说明:parser.add_argument 方法的type参数理论上可以是任何合法的类型,而且传入的顺序并没有要求

参数使用的说明:

--xx  完整参数输入
-x    简写参数输入
type  输入的参数将要被转换的数据类型
default 默认值
help   参数介绍
nargs  可传入的参数数量
required  是否为必须参数
import argparse
parser = argparse.ArgumentParser(description='argparse testing')
parser.add_argument('--name','-n',type=str, default = "bk",required=True,help="a programmer's name")
parser.add_argument('--age','-a',type=int, default=35,help='age of the programmer')
parser.add_argument('--sex','-s',type=str, default='male')
parser.add_argument('--favorite','-f',type=str, nargs="+",required=False,help="favorite of the programmer")

args = parser.parse_args()
print(args.name)
print(args.age)
print(args.sex)
print(args.favorite)

查看运行结果:

1.使用完整参数输入

 2.使用简写参数输入

3.多参数的传入

 

三、使用shell脚本的方式向python脚本传递参数

1.使用shell脚本向python脚本传递参数

python脚本依然使用sys.argv的数组的方式传入参数

原python如下:(python_test.py)

 

import sys

print("传入参数的总长度为:", len(sys.argv))
print("type:", type(sys.argv))
print("function name:", sys.argv[0])
try:
    print("第一个传入的参数为:", sys.argv[1])
    print("第二个传入的参数为:", sys.argv[2])
except Exception as e:
    print("Input Error:", e)

增加shell脚本如下:(shell_test.sh)

#!/bin/bash
#定义变量
para1=$1
para2=$2
python python_test.py $para1 $para2

查看运行结果:

 

2.使用shell脚本向python脚本内的方法传递参数

python脚本如下:(python_test.py)

def fun1():
    return "无参数方法fun1"

def fun2(x):
    return f"有参数方法fun2且传入的参数为{x}"

shell脚本如下:(shell_test.sh)

(1)无参数方式调用:

#!/bin/bash
#定义变量
python -c 'import python_test;print(python_test.fun1())'

查看运行结果:

 (2)有参数方式调用

#!/bin/bash
#定义变量
para=$1
python -c "import python_test;print(python_test.fun2('${para}'))"

查看运行结果:

  (3)一次调用所有方法,放入一个集合中,再调用切割方法获取相应的值

#!/bin/bash
#定义变量
para=$1
#将结果保存为一个变量ALL_RESULTS内
ALL_RESULTS=$(python -c "import python_test;print(python_test.fun1(),python_test.fun2('${para}'))")
#分别打印第一个方法的返回与第二个方法的返回
RESULTS_fun1=$(echo $ALL_RESULTS | cut -d' ' -f1)
RESULTS_fun2=$(echo $ALL_RESULTS | cut -d' ' -f2)
echo fun1方法的返回结果为:$RESULTS_fun1
echo fun2方法的返回结果为:$RESULTS_fun2

查看运行结果:

 原地址:https://www.cnblogs.com/mrwhite2020/p/16812198.html

标签:python,argv,收藏,sys,test,参数,print,三种
From: https://www.cnblogs.com/zhangzhijian/p/17377322.html

相关文章

  • WEB|[SUCTF 2019]Pythonginx
    源码@app.route('/getUrl',methods=['GET','POST'])defgetUrl():url=request.args.get("url")host=parse.urlparse(url).hostnameifhost=='suctf.cc':#解析主机名,不能是suctf.ccreturn......
  • python IO多路复用理解记录
    一、简述:1什么是多路I/O复用机制Python中的多路I/O复用机制是一种高效的编程技巧,用于同时监视多个文件描述符是否有可读、可写或错误事件,并在这些描述符中任意一个或多个有事件发生时立即进行响应。2使用多路I/O复用机制的目的同时处理多个连接时提高网络I/O效率,从......
  • 二叉树全分析(超详细总结建议收藏)
    个人主页:【......
  • python中的报错:dictionary changed size during iteration
    该报错是一个python中常见的错误,通常在使用for循环迭代字典时删除其中的元素时出现。这个问题的根本原因在于迭代字典的同时修改了它,导致字典的大小发生了变化。如下面的例子,就会报错:d={"a":1,"b":2,"c':3}fork,vind.items():ifv==2:deld[k]上述......
  • Python之路,Day21 - 常用算法学习
    本节内容算法定义时间复杂度空间复杂度常用算法实例 1.算法定义算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,......
  • Python之路,Day15 - Django适当进阶篇
    本节内容学员管理系统练习DjangoORM操作进阶用户认证 1.Django练习小项目:学员管理系统设计开发带着项目需求学习是最有趣和效率最高的,今天就来基于下面的需求来继续学习Django 项目需求:1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个......
  • python测试
    当你在写Python代码的时候,你希望确保它能够正常运行并返回正确的结果。这就是测试的重要性。在Python中,常用的测试框架是unittest。使用unittest,你可以写测试用例,这些测试用例可以测试你的代码是否按照预期方式工作。以下是一个简单的Python测试教程:1.导入unittest模块import......
  • python 创建虚拟环境以及数据迁移和.Django创建app
    一.python创建虚拟环境1.1首先要确认在那个位置创建虚拟环境创建命令virtualenv虚拟环境名称二.python数据迁移1.生成迁移文件pythonmanage.pymakemigrations2.同步到数据库中pythonmanage.pymigrate三.Django创建apppythonmanage.pystartappAPP名称......
  • 【Python】Beautiful Soup
    简介BeautifulSoup对象我全部使用soup表示;BeautifulSoup简介:简单来说,BeautifulSoup是python的一个库,最主要的功能是从网页抓取数据。1、创建BeautifulSoup对象1.1soup.prettify()frombs4importBeautifulSouphtml_content="""<html><head><title>TheDor......
  • Linux下搭建Python2.7环境
    Python(英语发音:/ˈpaɪθən/),是一种面向对象、解释型计算机程序设计语言,由1989年底发明。python具有简单、易学、免费、开源、可移植性、解释性、可嵌入性等特点,是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学,因而得到了广泛应用和支持。1.Python下载Pyt......