다음 코드가 있습니다.명령 인수를 사용하여 함수 호출
import os, fnmatch, sys
print ("HERE")
def test(arg):
print ("arg" + arg)
가 어떻게 명령 줄에서 스크립트를 실행할 때 기능 test
를 호출 가겠어요 ?
다음 코드가 있습니다.명령 인수를 사용하여 함수 호출
import os, fnmatch, sys
print ("HERE")
def test(arg):
print ("arg" + arg)
가 어떻게 명령 줄에서 스크립트를 실행할 때 기능 test
를 호출 가겠어요 ?
파이썬에서 명령 줄 옵션을 얻는 가장 간단한 방법은 sys.argv
입니다. 이 명령 행 옵션은 배열 형식으로 저장됩니다.
인수 인쇄는 매우 간단합니다.
import sys
print(str(sys.argv))
이 스크립트에 다음 명령 줄을 실행 할 경우 python test.py arg1 arg2 arg3
그것은 인쇄 할을 ['test.py', 'arg1', 'arg2', 'arg3']
당신은 당신의 함수를 호출 구축이를 사용할 수 있습니다. 하지만, 우리가 작성한 내용을 통해 알 수 있듯이, 여러분의 주장뿐만 아니라 우리가 실행 한 파일의 이름도 포함하고 있습니다. 이 때문에 우리는 먼저 사용자가 파일 이름 외에도 최소한 하나의 인수를 제공했는지 확인해야합니다.
len을 사용합니다.
import sys
if len(sys.argv) > 1:
print(sys.argv[1])
그러면이 함수를 사용하여 첫 번째 인수를 인쇄 할 수 있습니다.
당신이 바람직 인수를 구문 분석 OptionParser 같은 것을 사용하는 것이 명령 줄에서 기능 test
를 호출 실행하려면
import sys
def test(arg):
print ("arg" + arg)
if len(sys.argv) > 1:
test(sys.argv[1])
.
OptionParser
은 더 이상 사용되지 않으며
ArgParse을 대신 사용해야합니다.
이것은 OptionParser
및 사용자 기능을 사용하는 작동 예제입니다. 당신이 응용 프로그램을 실행할 때
from optparse import OptionParser
# Options/Args
parser = OptionParser()
# Add Options
parser.add_option("-t", "--test", dest="test")
# Parse the Options
(options, args) = parser.parse_args()
usage = "usage: %prog [options] arg"
parser = OptionParser(usage)
print ("HERE")
def test(arg):
print ("arg: " + arg)
# If the command line for test was specified.
if options.test:
# Run the test function.
test(options.test)
당신은 단순히 함수를 호출 할 -t your-text
를 추가합니다.
python3 test.py -t hello
겠습니까 출력 :
HERE
arg: hello
test('testing')
쓰기
def test(arg):
print ("arg" + arg)
에서 그런 다음 당신이 이전과 같은 방법으로 실행합니다. 는
uinpt = raw_input("Enter something: ")
test(uinpt)
이 파이썬 관용구가 너무 많이 사용되며, 사용자 입력을 실행하려면이 경우 절 내부
if __name__ == "__main__":
# do stuff
...
모두를 스크립트 콘솔에서 실행할 때 실행됩니다.당신이 test("blah blah")
으로 ...
이상 교체 한 경우 그런 식으로 당신은 당신이
(가) DEF 파이썬에서 구축 '정의'에 대한 짧은 : 당신이 원하는 결과를 얻을 것 모듈 파일 등
에 드라이버 코드를 넣을 수 있습니다 . 작성한 코드 블록은 테스트 함수를 정의하지만 호출하지는 않습니다. 인터프리터에 테스트 함수를 정의하면 '무엇'당신이 원하는 모든 것을 함께 명령
test('whatever')
을 실행할 수 있습니다. 또는 당신은 테스트를 정의한 후 파일에서 해당 명령을 넣고 인수없이 승/아주 간단한 예입니다 여기에 test.py
좋아요, 실행할 수 있습니다.하지만 test ('testing')에서와 같이 인수를 하드 코딩하는 대신 명령 줄 인수를 사용하는 방법은 무엇입니까? 기본적으로 명령 줄 인수로 호출 할 수있는 함수가 필요합니다. – Ron
OK, 심지어 짧은 : # ---- testit.py ---- 데프 시험 (ARG) : 파이썬 testit.py 테스트 ("TEST" 인쇄 ("인수"+ 인수)에 의해 실행을) 그러나 나는 아무것도 얻지 않는다. "arg"+ arg를 인쇄하려면 어떻게해야합니까? 이것은 완전히 기본적인 것처럼 보이지만보고 찾고 보았을 때 나는 아무것도 발견하지 못합니다. – Ron
불량 포맷에 죄송합니다! – Ron
를 입력 할 수 있습니다
def do_hex():
text=raw_input("Enter string to convert to hexadecimal: ")
print "HEX: " + text.encode('hex')
#call the function
do_hex()
하지만,하지만, 어떻게 파이썬은 테스트를 찾을 않는가? 말하자면, random.py라는 파일에 있고 random.py를 실행하고 있다면 ...? test() 또는 test.py의 캐스트에서 명령 행 인수를 어떻게 출력 할 수 있습니까? 나는 아직도 불분명하다. 나는 def가 정의하는 것을 의미하는 것을 이해한다. 만약 내가 인자를 하드 코딩하는 라인 테스트 ('my args')를 제거하고 test.py "args"를 실행하려고한다면 "나는 여기"를 얻는다. – Ron
당신은 완전히 다른 무언가에 대해 이야기하고 있습니다. 자세한 내용은이 기사를 참조하십시오. http://docs.python.org/dev/library/argparse.html – eandersson
정말로 원하는 것은 명령 줄에서 스크립트를 실행하는 것입니다. 나는 그것이 왜 그렇게 고통 스러울 지 모르겠다. 하나는 커맨드 라인 매개 변수에 접근한다. 이것은 C, C++ 및 C#과 Java의 첫날과 같습니다. 완전히 내장되고 사소한 ... 그것은 매우 어색한 것 같습니다. 내가하고 싶은 일은 대량 검색을 수행하고 폴더의 많은 파일을 대체 할 스크립트를 작성/작성하는 것입니다. – Ron