技术经验解读:使用python脚本传递参数:(三种方式可收藏)

简介: 技术经验解读:使用python脚本传递参数:(三种方式可收藏)

背景:使用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 //代码效果参考:http://www.lyjsj.net.cn/wz/art_22782.html

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 //代码效果参考:http://www.lyjsj.net.cn/wz/art_22780.html

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 //代码效果参考:http://www.lyjsj.net.cn/wz/art_22778.html

-d' ' -f1)

RESULTS_fun2=$(echo $ALL_RESULTS | cut -d' ' -f2)


echo fun1方法的返回结果为:$RESULTS_fun1


echo fun2方法的返回结果为:$RESULTS_fun2


查看运行结果:


原地址:

相关文章
|
9天前
|
API Python
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
【02】优雅草央央逆向技术篇之逆向接口协议篇-以小红书为例-python逆向小红书将用户名转换获得为uid-优雅草央千澈
|
19天前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
128 61
|
9天前
|
安全 数据挖掘 编译器
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
【01】优雅草央央逆向技术篇之逆向接口协议篇-如何用python逆向接口协议?python逆向接口协议的原理和步骤-优雅草央千澈
|
1月前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
104 7
21个Python脚本自动执行日常任务(2)
|
21天前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
29天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
113 5
|
29天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
77 2
|
1月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
66 7
|
2月前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
2月前
|
数据采集 API 定位技术
Python技术进阶:动态代理IP的跨境电商解决方案
Python技术进阶:动态代理IP的跨境电商解决方案