raw_input - python input()
Obtener la entrada del usuario (5)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo hago la entrada simple del usuario en Python? 4 respuestas
Estoy ejecutando esto:
import csv
import sys
reader = csv.reader(open(sys.argv[0], "rb"))
for row in reader:
print row
Y obtengo esto en respuesta:
[''import csv'']
[''import sys'']
[''reader = csv.reader(open(sys.argv[0]'', '' "rb"))'']
[''for row in reader:'']
['' print row'']
>>>
Para sys.argv[0]
me gustaría que me sys.argv[0]
que ingrese un nombre de archivo.
¿Cómo obtengo que me pida que ingrese un nombre de archivo?
En Python 3.x, use input()
lugar de raw_input()
Para complementar las respuestas anteriores en algo un poco más reutilizable, he llegado a esto, lo que continúa incitando al usuario si la entrada se considera inválida.
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
Se puede usar así, con funciones de validación:
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)
Use la función raw_input()
para obtener la entrada de los usuarios (2.x):
print "Enter a file name:",
filename = raw_input()
o solo:
filename = raw_input(''Enter a file name: '')
o si está en Python 3.x:
filename = input(''Enter a file name: '')
Use la siguiente forma simple de obtener de manera interactiva los datos del usuario mediante un aviso como Argumentos sobre lo que desea.
Versión: Python 3.X
name = input(''Enter Your Name: '')
print(''Hello '', name)
sys.argv[0]
no es el primer argumento, sino el nombre de archivo del programa python que está ejecutando actualmente. Creo que quieres sys.argv[1]