2011-11-26 10 views
10

Chcę, aby mój plik .py zaakceptował plik, który podaję jako dane wejściowe w wierszu poleceń. Użyłem sys.argv [], a także fileinput, ale nie otrzymuję danych wyjściowych.Jak otwierać pliki podane jako argumenty wiersza poleceń w pythonie?

+3

Pytanie nie jest jasne. Nie jest jasne, jaki jest twój cel, jakiego wyniku oczekujesz, co wypróbowałeś i jak się to udało. Zamiast mówić "użyłem' sys.argv [] ', a także' fileinput' ", lepiej byłoby pokazać twój aktualny kod. Zamiast mówić "Nie otrzymuję danych wyjściowych", lepiej pokaż otrzymany wynik i oczekiwany rezultat. –

+0

Zadanie polega na sprawdzeniu, czy podany plik zawierający ciągi jest prawidłowym adresem e-mail. na przykład: jeśli istnieją cztery linie, muszę sprawdzić, czy każda linia jest prawidłowym adresem e-mail. Jednak byłem w stanie to sprawdzić. Dostałem wymagane dane wyjściowe dla pliku, który podałem jako dane wejściowe. Próbuję go zmodyfikować, aby zaakceptować dowolny plik podany jako argument wiersza poleceń do konkretnego pliku .py, aby pobrać plik i sprawdzić, czy ten plik ma poprawne adresy e-mail. – Ram

+0

Robiłem ten program w mojej maszynie VM (ubuntu), więc nie mogłem skopiować wkleić go w moim komputerze z systemem Windows. – Ram

Odpowiedz

18

Jeśli będzie napisać następujący skrypt:

#!/usr/bin/env python 

import sys 

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

i uruchomić go, to wyświetlić zawartość pliku którego nazwa zdać w pierwszym argumencie tak:

./my_script.py test.txt 

(w powyższym przykładzie będzie to plik test.txt).

+0

@ Tadeck - Hej zadziałało. : D Dzięki :) – Ram

+0

@Ram: Cieszę się, że pomogło. Czy masz dodatkowe pytania? – Tadeck

+0

Nie, faktycznie przesłałem dane wyjściowe i otrzymałem pełny wynik! dzięki :) Zrobiłem to z 'sys.arg' ale dostałem błędy, więc nie wiedziałem jaki błąd robiłem. Po przeczytaniu twojego posta dowiedziałem się, że 'sys.argv' akceptuje argumenty linii poleceń jako array i dlatego używamy indeksowania. – Ram

Powiązane problemy