IT

사용자 입력을 가져오는 중

itgroup 2023. 8. 31. 23:50
반응형

사용자 입력을 가져오는 중

다음을 실행합니다.

import csv
import sys
reader = csv.reader(open(sys.argv[0], "rb"))
for row in reader:
    print row

그리고 저는 이에 대한 답을 얻었습니다.

['import csv']
['import sys']
['reader = csv.reader(open(sys.argv[0]', ' "rb"))']
['for row in reader:']
['    print row']
>>> 

를 위해sys.argv[0]파일 이름을 입력하라는 메시지를 표시하고 싶습니다.

파일 이름을 입력하라는 메시지를 표시하려면 어떻게 해야 합니까?

기능을 사용하여 사용자(2.x)로부터 입력을 가져옵니다.

print "Enter a file name:",
filename = raw_input()

아니면 그냥:

filename = raw_input('Enter a file name: ')

또는 Python 3.x의 경우:

filename = input('Enter a file name: ')

python 3.x에서는input()대신에raw_input()

sys.argv[0]첫 번째 인수가 아니라 현재 실행 중인 파이썬 프로그램의 파일 이름입니다.당신이 원하는 것 같습니다.sys.argv[1]

위의 답변을 조금 더 재사용 가능한 것으로 보완하기 위해 입력이 유효하지 않은 것으로 간주될 경우 사용자에게 계속 메시지를 표시하는 이 방법을 고안했습니다.

try:
    input = raw_input
except NameError:
    pass

def prompt(message, errormessage, isvalid):
    """Prompt for input given a message and return that value after verifying the input.

    Keyword arguments:
    message -- the message to display when asking the user for the value
    errormessage -- the message to display when the value fails validation
    isvalid -- a function that returns True if the value given by the user is valid
    """
    res = None
    while res is None:
        res = input(str(message)+': ')
        if not isvalid(res):
            print str(errormessage)
            res = None
    return res

유효성 검사 기능과 함께 다음과 같이 사용할 수 있습니다.

import re
import os.path

api_key = prompt(
        message = "Enter the API key to use for uploading", 
        errormessage= "A valid API key must be provided. This key can be found in your user profile",
        isvalid = lambda v : re.search(r"(([^-])+-){4}[^-]+", v))

filename = prompt(
        message = "Enter the path of the file to upload", 
        errormessage= "The file path you provided does not exist",
        isvalid = lambda v : os.path.isfile(v))

dataset_name = prompt(
        message = "Enter the name of the dataset you want to create", 
        errormessage= "The dataset must be named",
        isvalid = lambda v : len(v) > 0)

다음과 같은 간단한 방법을 사용하여 원하는 항목에 대한 Arguments로 대화식으로 사용자 데이터를 가져옵니다.

버전: 파이썬 3.X

name = input('Enter Your Name: ')
print('Hello ', name)

언급URL : https://stackoverflow.com/questions/3345202/getting-user-input

반응형