佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Python腳本文件外部傳遞參數(shù)的處理方法

Python腳本文件外部傳遞參數(shù)的處理方法

熱門標簽:企業(yè)做大做強 Win7旗艦版 呼叫中心市場需求 客戶服務(wù) 語音系統(tǒng) 硅谷的囚徒呼叫中心 電話運營中心 百度AI接口

前言

我們寫的 Python 腳本需要修改參數(shù),當我們將腳步上傳到服務(wù)器或者給不會編程的人用時,會比較不方便,如果直接可以在外部指定參數(shù),會非常方便,今天介紹的就是 Python 外部指定參數(shù)的幾種方法。

一、流文本處理

這種方法適用于修改一下文件中的內(nèi)容,配合 Linux 命令非常方便,舉一個例子,我們需要從一個 binlog 文件中找到該里面最大的事物,我們要配合 mysqldump 來做:

mysqlbinlog  -v --base64-output=decode-row ./mysql-bin.000001 | python check_big_event.py

此時我們需要給腳步的參數(shù)就只有 binlog 文件路徑,那就可以直接使用 sys 將 binlog 文件以流式(一行一行)傳遞給腳步,非常簡單就可以實現(xiàn),下方是示例腳本👇

二、argparse 模塊

Python 自帶的接收外部參數(shù)的模塊,用好以后也是非常的猴賽雷。下面是一個 MySQL 自動化部署腳步,需要指定的參數(shù)有三個,我們均可以使用 --參數(shù)名 方式來指定。

python MySQL_install.py --datadir=/data/mysql_db --basedir=/usr/local --path=mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

下方是使用實例,當不指定參數(shù)時,會打印出 help 方法。

下方是一個示例格式:

使用這種方法傳遞參數(shù),我們就可以運行腳本時:

python args.py --path=xxx --log=xxx

優(yōu)點非常多,指定參數(shù)沒有數(shù)量限制,可以設(shè)置默認,兼容性 和 擴展性非常好,生產(chǎn)推薦使用該方法。

三、argv 列表

這種方法非常簡單直接,不需要指定參數(shù)名,直接使用下標來取參數(shù),請看下方演示:

運行結(jié)果:

指定參數(shù)時,使用空格隔開就可以,缺點是我們必須安裝腳步順序指定,如果腳本只有一個參數(shù)或者參數(shù)意義相同,可以用這種方法,參數(shù)較多不建議使用。

四、argv + argparse

argv + argparse 好處就是可以讓腳本得到非常好的封裝,適用于腳步參數(shù)比較多的時候。下方是一個演示:

import sys
import argparse


def parse_args():
    """parse args for test"""

    parser = argparse.ArgumentParser(add_help=False)
    connect_setting = parser.add_argument_group('connect setting')
    connect_setting.add_argument('-h', '--host', dest='host', type=str,
                                 help='Host the MySQL database server located', default='127.0.0.1')
    connect_setting.add_argument('-u', '--user', dest='user', type=str,
                                 help='MySQL Username to log in as', default='root')
    connect_setting.add_argument('-p', '--password', dest='password', type=str, nargs='*',
                                 help='MySQL Password to use', default='')
    connect_setting.add_argument('-P', '--port', dest='port', type=int,
                                 help='MySQL port to use', default=3306)

    return parser


def command_line_args(args):
    need_print_help = False if args else True
    parser = parse_args()
    args = parser.parse_args(args)

    if args.help or need_print_help:
        parser.print_help()
        sys.exit(1)
        
    return args


if __name__ == '__main__':
    args = command_line_args(sys.argv[1:])
    print(args.host)

以上就是Python腳本文件外部傳遞參數(shù)的處理方法的詳細內(nèi)容,更多關(guān)于Python腳本外部傳遞參數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Jmeter調(diào)用Python腳本實現(xiàn)參數(shù)互相傳遞的實現(xiàn)
  • java 直接調(diào)用python腳本,并傳遞參數(shù)代碼實例
  • python 類之間的參數(shù)傳遞方式
  • Python進程,多進程,獲取進程id,給子進程傳遞參數(shù)操作示例
  • Python傳遞參數(shù)的多種方式(小結(jié))

標簽:海南 長沙 山西 山西 崇左 安康 濟南 喀什

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Python腳本文件外部傳遞參數(shù)的處理方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    四会市| 合作市| 五家渠市| 益阳市| 康定县| 云阳县| 馆陶县| 迁西县| 蓬溪县| 临漳县| 界首市| 大竹县| 滦平县| 咸丰县| 甘孜县| 天津市| 扎鲁特旗| 遂平县| 会理县| 河曲县| 长子县| 香河县| 珲春市| 依安县| 吉安市| 黑龙江省| 荥经县| 宣城市| 龙泉市| 贺兰县| 安丘市| 大兴区| 阿勒泰市| 临桂县| 扶余县| 永福县| 时尚| 阿拉善盟| 天长市| 宁城县| 休宁县|