it-swarm-ko.tech

사용자 입력 및 명령 줄 인수

A) 사용자 입력을 받아 들일 수있는 Python 스크립트를 어떻게 만들 수 있습니까? b) 명령 행에서 실행하면 인수를 읽는 방법은 무엇입니까?

465
Teifion

사용자 입력을 읽으려면 미니 명령 행 인터프리터 (도움말 텍스트 및 자동 완성 포함) 및 raw_input (Python 3+의 경우 cmdNAME_ )를 쉽게 만들 수있는 input모듈 을 사용해보십시오. 사용자의 텍스트 줄.

text = raw_input("Prompt")  # Python 2
text = input("Prompt")  # Python 3

명령 행 입력은 sys.argv에 있습니다. 스크립트에서 다음을 시도해보십시오.

import sys
print (sys.argv)

명령 줄 옵션을 구문 분석하기위한 두 개의 모듈이 있습니다. optparsename__ (Python 2.7부터 사용되지 않음, 대신 argparseNAME_ 사용) 및 getoptNAME_ . 스크립트에 파일을 입력하고 싶다면 fileinputNAME_ 의 힘을보십시오.

파이썬 라이브러리 참조 는 당신의 친구입니다.

416
Antti Rasinen
var = raw_input("Please enter something: ")
print "you entered", var

또는 Python 3 :

var = input("Please enter something: ")
print("You entered: " + var)
444
lbz

raw_input는 더 이상 Python 3.x에서 사용할 수 없습니다. 그러나 raw_inputinput으로 이름이 변경되었으므로 동일한 기능이 있습니다.

input_var = input("Enter something: ")
print ("you entered " + input_var) 

변경 사항에 대한 문서화

201
steampowered

명령 줄 인수를 처리하는 가장 좋은 방법은 argparse 모듈입니다.

사용자 입력을 얻으려면 raw_input()을 사용하십시오. readline module 를 가져 오면 사용자는 줄 편집 및 기록을 갖게됩니다.

31
Dave Webb

자신이하는 일을 알지 못한다면 input 함수를 사용하지 않도록 조심하십시오. raw_input와는 달리 input은 파이썬 표현식을 허용하므로 eval과 비슷합니다.

18
Vhaerun

이 간단한 프로그램은 명령 줄에서 사용자 입력을 제공하고 잘못된 인수를 전달하는 데 도움을 표시하는 방법을 이해하는 데 도움이됩니다.

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'>
13
Viswesn

콘솔/터미널에서 입력 할 때는 '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 모듈을 사용하여 명령 행 옵션에 대한 전체 설명을 원한다면.

Pev

10
Simon Peverett

Python <2.7을 실행하는 경우 optparse 가 필요합니다.이 설명에서는 응용 프로그램을 실행할 때 호출되는 명령 줄 인수에 대한 인터페이스를 만듭니다.

그러나 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)
9
Matt Olan

3.x 버전 인 경우 다음을 사용하십시오.

variantname = input()

예를 들어 8을 입력하려고합니다.

x = input()
8

x는 8과 같지만, 다르게 정의하는 경우를 제외하고는 문자열이됩니다.

따라서 다음과 같이 convert 명령을 사용할 수 있습니다.

a = int(x) * 1.1343
print(round(a, 2)) # '9.07'
9.07
6
CorpseDead

파이썬 현재 3.2 2.7, 명령 행 인수 처리를 위해 argparse 가 있습니다.

6
GreenMatt

파이썬 2에서 :

data = raw_input('Enter something: ')
print data

파이썬 3 :

data = input('Enter something: ')
print(data)
2
Mark
import six

if six.PY2:
    input = raw_input

print(input("What's your name? "))
1
Will Charlton