網(wǎng)站首頁 編程語言 正文
背景:使用python腳本傳遞參數(shù)在實際工作過程中還是比較常用,以下提供了好幾種的實現(xiàn)方式:
一、使用sys.argv的數(shù)組傳入
說明:使用sys.argv必須按照先后的順序傳入對應的參數(shù);sys.argv則封裝了傳入的參數(shù)數(shù)據(jù),作為數(shù)組的方式已經(jīng)傳入
import sys
print("傳入?yún)?shù)的總長度為:", len(sys.argv))
print("type:", type(sys.argv))
print("function name:", sys.argv[0])
try:
print("第一個傳入的參數(shù)為:", sys.argv[1])
print("第二個傳入的參數(shù)為:", sys.argv[2])
except Exception as e:
print("Input Error:", e)
通過命令行查看運行結果:
二、使用argparse包傳入
說明:parser.add_argument 方法的type參數(shù)理論上可以是任何合法的類型,而且傳入的順序并沒有要求
參數(shù)使用的說明:
- --xx ?完整參數(shù)輸入
- -x ? ?簡寫參數(shù)輸入
- type ?輸入的參數(shù)將要被轉換的數(shù)據(jù)類型
- default 默認值
- help ? 參數(shù)介紹
- nargs ?可傳入的參數(shù)數(shù)量
- required ?是否為必須參數(shù)
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.使用完整參數(shù)輸入
2.使用簡寫參數(shù)輸入
3.多參數(shù)的傳入
三、使用shell腳本的方式向python腳本傳遞參數(shù)
1.使用shell腳本向python腳本傳遞參數(shù)
python腳本依然使用sys.argv的數(shù)組的方式傳入?yún)?shù)
原python如下:(python_test.py)
import sys
print("傳入?yún)?shù)的總長度為:", len(sys.argv))
print("type:", type(sys.argv))
print("function name:", sys.argv[0])
try:
print("第一個傳入的參數(shù)為:", sys.argv[1])
print("第二個傳入的參數(shù)為:", 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腳本內(nèi)的方法傳遞參數(shù)
python腳本如下:(python_test.py)
def fun1():
return "無參數(shù)方法fun1"
def fun2(x):
return f"有參數(shù)方法fun2且傳入的參數(shù)為{x}"
shell腳本如下:(shell_test.sh)
(1)無參數(shù)方式調(diào)用:
#!/bin/bash
#定義變量
python -c 'import python_test;print(python_test.fun1())'
查看運行結果:
(2)有參數(shù)方式調(diào)用
#!/bin/bash
#定義變量
para=$1
python -c "import python_test;print(python_test.fun2('${para}'))"
查看運行結果:
?(3)一次調(diào)用所有方法,放入一個集合中,再調(diào)用切割方法獲取相應的值
#!/bin/bash
#定義變量
para=$1
#將結果保存為一個變量ALL_RESULTS內(nèi)
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
相關推薦
- 2023-02-09 python如何提取xml指定內(nèi)容_python
- 2023-03-16 redis刪除hash的實現(xiàn)方式_Redis
- 2022-09-03 Nginx文件已經(jīng)存在全局反向代理問題排查記錄_nginx
- 2022-11-06 Golang常用包使用介紹_Golang
- 2022-06-07 FreeRTOS實時操作系統(tǒng)移植操作示例指南_操作系統(tǒng)
- 2022-12-06 python中isdigit()?isalpha()用于判斷字符串的類型問題_python
- 2022-04-05 antd form操作表單元素以及獲取值方法,antd form獲取某個值
- 2022-08-21 Python?正則?re.compile?真的必需嗎_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支