문제

a) 사용자 입력을 허용할 수 있는 Python 스크립트를 어떻게 만들고 b) 명령줄에서 실행하는 경우 인수를 읽도록 하려면 어떻게 해야 합니까?

도움이 되었습니까?

해결책

사용자 입력을 읽으려면 시도해 볼 수 있습니다 그만큼 cmd 기준 치수 미니 명령줄 해석기(도움말 텍스트 및 자동 완성 기능 포함)를 쉽게 만들 수 있습니다. raw_input (input Python 3+의 경우) 사용자로부터 텍스트 한 줄을 읽습니다.

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

명령줄 입력은 다음과 같습니다. sys.argv.스크립트에서 다음을 시도해 보세요.

import sys
print (sys.argv)

명령줄 옵션을 구문 분석하기 위한 두 가지 모듈이 있습니다: optparse (Python 2.7부터 더 이상 사용되지 않습니다. argparse 대신) 그리고 getopt.단지 스크립트에 파일을 입력하고 싶다면 다음의 강력한 기능을 확인하십시오. fileinput.

그만큼 Python 라이브러리 참조 당신의 친구입니다.

다른 팁

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) 

변경 문서

명령줄 인수를 처리하는 가장 좋은 방법은 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을 실행하는 경우 다음이 필요합니다. 선택 분석, 문서에 설명된 대로 애플리케이션이 실행될 때 호출되는 명령줄 인수에 대한 인터페이스를 생성합니다.

그러나 Python ≥2.7에서는 optparse가 더 이상 사용되지 않으며 다음으로 대체되었습니다. 인수 위에 표시된 것처럼.문서의 간단한 예 ...

다음 코드는 정수 목록을 취하고 합 또는 최대를 생성하는 파이썬 프로그램입니다.

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.2 2.7, 지금은 있어요 인수 명령줄 인수를 처리하기 위한 것입니다.

3.x 버전인 경우 다음을 사용하면 됩니다.

variantname = input()

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

x = input()
8

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

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

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? "))
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top