사용자 입력 및 명령줄 인수
사용자 입력을 수락할 수 있는 파이썬 스크립트를 어떻게 가지고 있으며 명령줄에서 실행할 경우 인수에서 어떻게 읽습니까?
사용자 입력을 읽으려면 모듈을 사용하여 도움말 텍스트 및 자동 완성 기능이 있는 미니 명령 줄 인터프리터를 input
쉽게 만들고 (Python 3+의 경우) 사용자의 텍스트 줄을 읽을 수 있습니다.
text = raw_input("prompt") # Python 2
text = input("prompt") # Python 3
명령줄 입력이 다음 위치에 있습니다.sys.argv
스크립트에서 이 작업을 수행합니다.
import sys
print (sys.argv)
명령줄 옵션을 구문 분석하기 위한 두 가지 모듈이 있습니다. (Python 2.7 이후에는 사용되지 않으며 대신 사용) 및 .스크립트에 파일만 입력하려면 의 성능을 확인하십시오.
파이썬 라이브러리 참조는 당신의 친구입니다.
var = raw_input("Please enter something: ")
print "you entered", var
또는 Python 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)
명령줄 인수를 처리하는 가장 좋은 방법은 모듈입니다.
사용하다raw_input()
사용자 입력을 가져옵니다.가져오면 사용자가 줄 편집 및 기록을 갖게 됩니다.
사용하지 않도록 주의하십시오.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
5의 제곱근 찾기
C:\Users\Desktop>python -i emp.py 5
25
['emp.py', '5']
5
숫자가 아닌 잘못된 인수 전달
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가 필요합니다. 이것은 당신의 애플리케이션이 실행될 때 호출되는 명령행 인수에 대한 인터페이스를 만들 것입니다.
그러나 Python ≥2.7에서는 optparse가 더 이상 사용되지 않으며 위와 같이 argparse로 대체되었습니다.문서의 간단한 예는...
다음 코드는 정수 목록을 가져와서 합 또는 최대값을 생성하는 파이썬 프로그램입니다.
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)
Python 3.2 2.7에서 명령줄 인수를 처리하기 위한 인수가 있습니다.
3.x 버전인 경우 다음을 사용하면 됩니다.
variantname = input()
예를 들어, 8을 입력하려고 합니다.
x = input()
8
x는 8과 같으나 달리 정의하지 않는 한 문자열이 됩니다.
따라서 다음과 같은 convert 명령을 사용할 수 있습니다.
a = int(x) * 1.1343
print(round(a, 2)) # '9.07'
9.07
Python 2의 경우:
data = raw_input('Enter something: ')
print data
Python 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
'source' 카테고리의 다른 글
애플리케이션 인사이트 - 사용자 정의 차원별 정렬 방법 (0) | 2023.05.07 |
---|---|
핸들 바:부모의 "소유 속성"이 아니기 때문에 "출처" 속성을 확인하기 위한 액세스가 거부되었습니다. (0) | 2023.05.07 |
폴더 자체가 아닌 폴더의 모든 파일/폴더를 무시하는 방법은 무엇입니까? (0) | 2023.05.07 |
백분율 값을 유지하기 위한 적절한 데이터 유형? (0) | 2023.05.07 |
시스템에 실행 파일이 없을 때 Windows 서비스를 제거하는 방법은 무엇입니까? (0) | 2023.05.07 |