Python 셸에서 인수를 사용하여 파일 실행
인수가있는 파일을 실행하기 위해 Python Shell에서 명령을 실행하고 싶습니다.
예 : execfile("abc.py")
하지만 2 개의 인수를 추가하는 방법은 무엇입니까?
execfile
Python 파일을 실행하지만 스크립트가 아닌로드하여 실행합니다. 인수가 아닌 변수 바인딩 만 전달할 수 있습니다.
Python 내에서 프로그램을 실행하려면 subprocess.call
. 예
subprocess.call(['./abc.py', arg1, arg2])
이 시도:
import sys
sys.argv = ['arg1', 'arg2']
execfile('abc.py')
참고 때 abc.py
마감이 컨트롤이 호출 프로그램에 반환됩니다. 참고도 그 abc.py
호출 할 수 있습니다 quit()
참으로 완료합니다.
사실, 우리는 이것을하고 싶지 않습니까?
import sys
sys.argv = ['abc.py','arg1', 'arg2']
execfile('abc.py')
import sys
import subprocess
subprocess.call([sys.executable, 'abc.py', 'argument1', 'argument2'])
현재 인터프리터 프로세스에 모듈을로드하고 외부에서 Python 스크립트를 호출하는 것이 혼란 스럽습니다.
전자 import
는 관심있는 파일을 사용하여 수행 할 수 있습니다 . execfile 은 가져 오기와 유사하지만 파일에서 모듈을 생성하는 대신 단순히 파일을 평가합니다. 쉘 스크립트의 "소싱"과 유사합니다.
후자는 subprocess 모듈을 사용하여 수행 할 수 있습니다. 인터프리터의 다른 인스턴스를 생성하고 원하는 매개 변수를 전달합니다. 이것은 백틱을 사용하여 쉘 스크립트에서 쉘 아웃하는 것과 유사합니다.
더 흥미로운 시나리오를 위해 runpy
모듈을 볼 수도 있습니다 . 파이썬 2.7부터 run_path
기능이 있습니다. 예 :
import runpy
import sys
# argv[0] will be replaced by runpy
# You could also skip this if you get sys.argv populated
# via other means
sys.argv = ['', 'arg1' 'arg2']
runpy.run_path('./abc.py', run_name='__main__')
명령 줄 인수는 execfile()
. subprocess
대신 보세요 .
PYTHONINSPECT
실행하려는 파이썬 파일에 설정 한 경우
[repl.py]
import os
import sys
from time import time
os.environ['PYTHONINSPECT'] = 'True'
t=time()
argv=sys.argv[1:len(sys.argv)]
를 사용할 필요가 없으며 execfile
셸에서 평소와 같이 인수를 사용하여 파일을 직접 실행할 수 있습니다.
python repl.py one two 3
>>> t
1513989378.880822
>>> argv
['one', 'two', '3']
게다가 subprocess.call
, 당신은 또한 사용할 수 있습니다 subprocess.Popen
. 다음과 같이
subprocess.Popen(['./script', arg1, arg2])
스크립트를 병렬로 실행하고 다른 인수를 지정하려면 아래와 같이 할 수 있습니다.
import os
os.system("python script.py arg1 arg2 & python script.py arg11 arg22")
참고 URL : https://stackoverflow.com/questions/5788891/execute-a-file-with-arguments-in-python-shell
'Program Tip' 카테고리의 다른 글
mongoimport를 사용하여 파일에서 mongodb로 json 가져 오기 (0) | 2020.11.22 |
---|---|
부모 컨테이너를 기준으로 범위의 시작 및 끝 오프셋 가져 오기 (0) | 2020.11.22 |
Grails 2.0에서 Grails 구성에 액세스하는 방법은 무엇입니까? (0) | 2020.11.22 |
선택한 Jquery 플러그인-선택한 값 가져 오기 (0) | 2020.11.22 |
Swift에서 전체 화면 스크린 샷을 찍으려면 어떻게하나요? (0) | 2020.11.22 |