2011-11-26 12 views
10

Quiero que mi archivo .py acepte el archivo que doy como entrada en la línea de comando. Utilicé sys.argv [] y también fileinput pero no obtengo el resultado.¿Cómo abrir archivos proporcionados como argumentos de líneas de comando en python?

+3

Su pregunta no está clara. No está claro cuál es su objetivo, qué resultado espera, qué probó y cómo desapareció. En lugar de decir "utilicé el' sys.argv [] 'y también' fileinput' ", sería mejor mostrar tu código real. En lugar de decir "No obtengo el resultado", mejor muestre el resultado que obtiene y el resultado que espera. –

+0

La tarea es que necesito verificar si el archivo dado que contiene cadenas es una dirección de correo electrónico válida. por ejemplo: si hay cuatro líneas, necesito verificar si cada línea es una dirección de correo electrónico válida. Sin embargo, pude verificar eso. Obtuve el resultado requerido para el archivo que di como entrada. Estoy tratando de modificarlo para aceptar cualquier archivo dado como argumento de línea de comando al archivo .py particular para que tome el archivo y verifique si ese archivo tiene direcciones de correo electrónico válidas. – Ram

+0

Estaba haciendo este programa en mi máquina de VM (ubuntu) por lo que no pude copiar pegarlo en mi máquina de Windows. – Ram

Respuesta

18

Si usted va a escribir el siguiente script:

#!/usr/bin/env python 

import sys 

with open(sys.argv[1], 'r') as my_file: 
    print(my_file.read()) 

y ejecutarlo, será mostrar el contenido del archivo cuyo nombre se pasa en el primer argumento así:

./my_script.py test.txt 

(en el ejemplo anterior este archivo será test.txt).

+0

@ Tadeck - Hey funcionó. : D Gracias :) – Ram

+0

@Ram: Me alegra que haya ayudado. ¿Tienes alguna pregunta adicional? – Tadeck

+0

No, en realidad, he enviado la salida y obtuve un puntaje completo. gracias :) Lo hice con 'sys.arg' pero recibí errores, así que no sabía qué error estaba cometiendo. Después de leer su publicación, me enteré de que 'sys.argv' acepta los argumentos de la línea de comando como una matriz y es por eso que usamos la indexación. – Ram

Cuestiones relacionadas