Python 스 크 립 트 파일 외부 전달 매개 변수 처리 방법

머리말
우리 가 쓴 Python 스 크 립 트 는 파 라 메 터 를 수정 해 야 합 니 다.서버 에 발 을 올 리 거나 프로 그래 밍 을 하지 않 는 사람 에 게 사용 할 때 불편 합 니 다.외부 에서 파 라 메 터 를 직접 지정 할 수 있다 면 매우 편리 할 것 입 니 다.오늘 소개 하 는 것 은 Python 외부 에서 지정 한 매개 변수의 몇 가지 방법 입 니 다.
흐름 텍스트 처리
이 방법 은 파일 의 내용 을 수정 하 는 데 적용 되 며,Linux 명령 에 맞 추 는 것 이 매우 편리 합 니 다.예 를 들 어,우 리 는 binlog 파일 에서 이 안에 있 는 가장 큰 것 을 찾 아야 합 니 다.우 리 는 my sqldump 에 맞 춰 해 야 합 니 다.

mysqlbinlog  -v --base64-output=decode-row ./mysql-bin.000001 | python check_big_event.py
이때 우리 가 걸음 을 줘 야 할 인 자 는 binlog 파일 경로 만 있 습 니 다.그러면 sys 를 사용 하여 binlog 파일 을 흐름 식(한 줄 한 줄)으로 걸음 에 전달 할 수 있 습 니 다.매우 간단 하면 실현 할 수 있 습 니 다.아래 는 예제 스 크 립 트 입 니 다.👇
在这里插入图片描述
2.argparse 모듈
Python 이 자체 적 으로 외부 파 라 메 터 를 수신 하 는 모듈 은 잘 사용 한 후에 도 매우 원숭이 세 레 입 니 다.다음은 MySQL 자동화 배치 걸음 입 니 다.지정 해 야 할 매개 변 수 는 세 가지 가 있 습 니 다.우 리 는 모두-- 방식 으로 지정 할 수 있 습 니 다.

python MySQL_install.py --datadir=/data/mysql_db --basedir=/usr/local --path=mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
아래 는 인 스 턴 스 를 사용 합 니 다.인 자 를 지정 하지 않 으 면 help 방법 을 출력 합 니 다.
在这里插入图片描述
아래 는 예제 형식 입 니 다.
在这里插入图片描述
이러한 방법 으로 파 라 메 터 를 전달 하면 스 크 립 트 를 실행 할 수 있 습 니 다.

python args.py --path=xxx --log=xxx
장점 이 매우 많 고 지 정 된 매개 변 수 는 수량 제한 이 없 으 며 기본 값 을 설정 할 수 있 으 며 호환성 과 확장 성 이 매우 좋 습 니 다.생산 은 이 방법 을 추천 합 니 다.
argv 목록
이 방법 은 매우 간단 하고 직접적 입 니 다.매개 변수 이름 을 지정 할 필요 가 없습니다.아래 표 시 를 사용 하여 파 라 메 터 를 찾 습 니 다.아래 프레젠테이션 을 보십시오.
在这里插入图片描述
실행 결과:
在这里插入图片描述
파 라 메 터 를 지정 할 때 빈 칸 으로 분리 하면 됩 니 다.단점 은 우리 가 걸음 순 서 를 설치 해 야 한 다 는 것 입 니 다.만약 에 스 크 립 트 가 하나의 매개 변수 나 매개 변수 만 의미 가 같 으 면 이런 방법 을 사용 할 수 있 습 니 다.매개 변 수 는 사용 하 는 것 을 권장 하지 않 습 니 다.
4.argv+argparse
argv+argparse 의 장점 은 스 크 립 트 를 아주 좋 은 패키지 로 만 들 수 있 고 걸음 매개 변수 가 많 을 때 적용 할 수 있다 는 것 입 니 다.다음은 데모 입 니 다.

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 스 크 립 트 파일 외부 전달 매개 변수 처리 방법 에 대한 상세 한 내용 입 니 다.Python 스 크 립 트 외부 전달 매개 변수 에 대한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기