2011-11-26 2 views
10

Voglio il mio file .py per accettare il file che fornisco come input nella riga di comando. Ho usato sys.argv [] e anche fileinput ma non sto ottenendo l'output.Come aprire file dati come argomenti della riga di comando in python?

+3

La tua domanda non è chiara. Non è chiaro quale sia il tuo obiettivo, quale output ti aspetti, cosa hai provato e come è caduto. Invece di dire "Ho usato' sys.argv [] 'e anche' fileinput' ", sarebbe meglio mostrare il tuo codice reale. Invece di dire "I am not getting the output", meglio mostrare l'output che ottieni e l'output che ti aspetti. –

+0

L'attività è che ho bisogno di verificare se il file dato contenente stringhe è un indirizzo email valido. per esempio: se ci sono quattro righe, devo controllare se ogni riga è un indirizzo email valido. Tuttavia, sono stato in grado di verificarlo. Ho ottenuto l'output richiesto per il file che ho dato come input. Sto provando a modificarlo per accettare qualsiasi file dato come argomento della riga di comando per il particolare file .py in modo che prenda il file e controlli se quel file ha indirizzi email validi. – Ram

+0

Stavo facendo questo programma nella mia macchina virtuale (ubuntu), quindi non potevo copiare incollarlo nella mia macchina Windows. – Ram

risposta

18

Se si scriverà il seguente script:

#!/usr/bin/env python 

import sys 

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

ed eseguirlo, sarà visualizzare il contenuto del file il cui nome si passa nel primo argomento così:

./my_script.py test.txt 

(nell'esempio precedente questo file sarà test.txt).

+0

@ Tadeck - Ehi ha funzionato. : D Grazie :) – Ram

+0

@ Ram: Sono contento che sia stato d'aiuto. Avete altre domande? – Tadeck

+0

No, ho effettivamente inviato l'output e ottenuto un punteggio completo! grazie :) L'ho fatto con 'sys.arg' ma ho avuto degli errori quindi non sapevo quale errore stavo facendo. Dopo aver letto il tuo post ho appreso che 'sys.argv' accetta gli argomenti della riga di comando come array ed è per questo che usiamo l'indicizzazione. – Ram