인수를 사용하여 bash에서 Python 스크립트 호출
다음을 사용하여 bash 스크립트에서 Python 스크립트를 실행할 수 있다는 것을 알고 있습니다.
python python_script.py
그러나 bash 스크립트에서 파이썬 스크립트에 변수 / 인수를 전달하려면 어떻게해야합니까? 어떻게 할 수 있습니까?
기본적으로 bash는 파일 이름을 알아 내고 python은 파일을 업로드하지만 이름을 호출 할 때 bash에서 python으로 파일 이름을 보내야합니다.
bash 스크립트에서 python 스크립트를 실행하려면 터미널 내에서와 동일한 명령을 호출해야합니다. 예를 들어
> python python_script.py var1 var2
파이썬 내에서 이러한 변수에 액세스하려면 다음이 필요합니다.
import sys
print sys.argv[0] # prints python_script.py
print sys.argv[1] # prints var1
print sys.argv[2] # prints var2
사용하다
python python_script.py filename
그리고 Python 스크립트에서
import sys
print sys.argv[1]
옆 에 스크립트에 대한 옵션과 인수를 정의하는 데 도움이되는 argparse 모듈도 sys.argv
살펴보십시오 .
argparse 모듈을 사용하면 사용자 친화적 인 명령 줄 인터페이스를 쉽게 작성할 수 있습니다.
임베디드 옵션 :
bash 함수로 Python 코드를 래핑합니다.
#!/bin/bash
function current_datetime {
python - <<END
import datetime
print datetime.datetime.now()
END
}
# Call it
current_datetime
# Call it and capture the output
DT=$(current_datetime)
echo Current date and time: $DT
환경 변수를 사용하여 임베디드 Python 스크립트에 데이터를 전달하십시오.
#!/bin/bash
function line {
PYTHON_ARG="$1" python - <<END
import os
line_len = int(os.environ['PYTHON_ARG'])
print '-' * line_len
END
}
# Do it one way
line 80
# Do it another way
echo $(line 80)
http://bhfsteve.blogspot.se/2014/07/embedding-python-in-bash-scripts.html
작은 파이썬 루틴을 호출하여 메시지 창을 표시하는 bash 스크립트가 있습니다. python 스크립트를 중지하기 위해 killall을 사용해야하므로 위의 방법을 사용할 수 없습니다. 다른 python 프로그램을 제거 할 수있는 killall python 실행을 의미하므로
pythonprog.py "$argument"
& # &는 제어권을 bash 스크립트로 직접 반환하므로 백틱 밖에 있어야합니다. 이 메시지의 미리보기는 어떤 이유로 명령의 양쪽에 "`"없이 표시됩니다.
As long as the python script will run from the cli by name rather than python pythonprog.py this works within the script. If you need more than one argument just use a space between each one within the quotes.
use in the script:
echo $(python python_script.py arg1 arg2) > /dev/null
or
python python_script.py "string arg" > /dev/null
The script will be executed without output.
and take a look at the getopt module. It works quite good for me!
참고URL : https://stackoverflow.com/questions/14155669/call-python-script-from-bash-with-argument
'development' 카테고리의 다른 글
R에서 반복되는 값의 시퀀스 (0) | 2020.11.07 |
---|---|
브라우저에서 angularjs의 $ rootScope 객체를 디버깅하는 방법 (0) | 2020.11.07 |
CSS3 플렉스 박스 : 디스플레이 : 박스 vs. 플렉스 박스 vs. 플렉스 (0) | 2020.11.07 |
EnableWebMvc 주석 의미 (0) | 2020.11.07 |
C에서 32 비트 정수를 선언하는 방법 (0) | 2020.11.07 |