사용자 입력 및 명령 행 인수
a) 사용자 입력을 받아 들일 수 있고 b) 명령 줄에서 실행할 경우 인수를 읽도록하는 Python 스크립트를 어떻게 갖습니까?
사용자 입력을 읽으려면 사용자 로부터 텍스트 줄을 읽기위한 미니 명령 줄 인터프리터 (도움말 텍스트 및 자동 완성 포함) 및 ( Python 3+ 용)를 쉽게 만들 수 있는 cmd
모듈 을 사용해 볼 수 있습니다 .raw_input
input
text = raw_input("prompt") # Python 2
text = input("prompt") # Python 3
명령 줄 입력은입니다 sys.argv
. 스크립트에서 이것을 시도하십시오 :
import sys
print (sys.argv)
명령 행 옵션을 파싱하기위한 두 가지 모듈이 있습니다 : (Python 2.7부터 사용되지 않으며 optparse
argparse
대신 사용) 및 getopt
. 스크립트에 파일을 입력하려면의 힘을 확인하십시오 fileinput
.
파이썬 라이브러리 참조는 당신의 친구입니다.
var = raw_input("Please enter something: ")
print "you entered", var
또는 파이썬 3의 경우 :
var = input("Please enter something: ")
print("You entered: " + var)
raw_input
Python 3.x에서는 더 이상 사용할 수 없습니다. 그러나 raw_input
이름이 바뀌 었 input
으므로 동일한 기능이 존재합니다.
input_var = input("Enter something: ")
print ("you entered " + input_var)
명령 행 인수를 처리하는 가장 좋은 방법은 argparse
모듈입니다.
사용하여 raw_input()
사용자 입력을받을 수 있습니다. 가져 오면 readline module
사용자에게 라인 편집 및 히스토리가 있습니다.
input
수행중인 작업을 모르는 경우 기능 을 사용하지 않도록주의하십시오 . 와 달리 raw_input
, input
파이썬 표현식을 받아 들일 것입니다.eval
이 간단한 프로그램은 명령 행에서 사용자 입력을 공급하고 유효하지 않은 인수를 전달하는 데 도움을주는 방법을 이해하는 데 도움이됩니다.
import argparse
import sys
try:
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
type=int)
args = parser.parse_args()
#print the square of user input from cmd line.
print args.square**2
#print all the sys argument passed from cmd line including the program name.
print sys.argv
#print the second argument passed from cmd line; Note it starts from ZERO
print sys.argv[1]
except:
e = sys.exc_info()[0]
print e
1) 5의 제곱근을 구하려면
C:\Users\Desktop>python -i emp.py 5
25
['emp.py', '5']
5
2) 숫자 이외의 잘못된 인수 전달
C:\Users\bgh37516\Desktop>python -i emp.py five
usage: emp.py [-h] square
emp.py: error: argument square: invalid int value: 'five'
<type 'exceptions.SystemExit'>
콘솔 / 터미널에서 입력하려면 'raw_input'을 사용하십시오.
파일 이름과 같은 명령 줄 인수를 원한다면
$ python my_prog.py file_name.txt
그런 다음 sys.argv를 사용할 수 있습니다 ...
import sys
print sys.argv
sys.argv는 0이 프로그램 이름 인 목록이므로 위의 예에서 sys.argv [1]은 "file_name.txt"입니다.
전체 명령 행 옵션을 사용하려면 optparse 모듈을 사용하십시오.
페브
Python <2.7을 실행중인 경우, optparse 가 필요 합니다. doc은 애플리케이션이 실행될 때 호출되는 명령 행 인수에 대한 인터페이스를 작성합니다.
그러나 Python ≥2.7에서는 optparse가 더 이상 사용되지 않으며 위에 표시된대로 argparse 로 대체되었습니다 . 문서의 빠른 예 ...
다음 코드는 정수 목록을 가져와 합계 또는 최대 값을 생성하는 Python 프로그램입니다.
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print args.accumulate(args.integers)
파이썬으로 3.22.7, 이제 명령 행 인수 처리를위한 argparse 가 있습니다 .
그것이 3.x 버전이라면 간단히 사용하십시오 :
variantname = input()
예를 들어, 8을 입력하려고합니다.
x = input()
8
x는 8과 같지만 달리 정의하지 않는 한 문자열이됩니다.
따라서 다음과 같이 convert 명령을 사용할 수 있습니다.
a = int(x) * 1.1343
print(round(a, 2)) # '9.07'
9.07
파이썬 2에서 :
data = raw_input('Enter something: ')
print data
파이썬 3에서 :
data = input('Enter something: ')
print(data)
import six
if six.PY2:
input = raw_input
print(input("What's your name? "))
참고 URL : https://stackoverflow.com/questions/70797/user-input-and-command-line-arguments
'Programming' 카테고리의 다른 글
시뮬레이터 또는 에뮬레이터? (0) | 2020.02.12 |
---|---|
모든 지사 및 태그를 포함하여 로컬 Git 리포지를 새로운 리모컨으로 푸시 (0) | 2020.02.12 |
파이썬 : 목록에서 찾기 (0) | 2020.02.12 |
iOS에서 화면 너비와 높이를 얻는 방법은 무엇입니까? (0) | 2020.02.12 |
Swift에서 문자열에 다른 문자열이 포함되어 있는지 어떻게 확인합니까? (0) | 2020.02.12 |