Jak mam skrypt w języku Python, który: a) może akceptować dane wejściowe użytkownika i jak go zmusić, b) wczytywać argumenty, jeśli są uruchamiane z wiersza poleceń?
python
input
command-line-arguments
Teifion
źródło
źródło
argparse
Zamiastoptparse
.Odpowiedzi:
Aby odczytać dane wprowadzone przez użytkownika można wypróbować ten
cmd
moduł do łatwego tworzenia linii mini-interpreter poleceń (z tekstów pomocy i autouzupełniania) iraw_input
(input
dla Pythona 3+) do czytania wiersza tekstu od użytkownika.Wejścia wiersza poleceń są w
sys.argv
. Wypróbuj to w swoim skrypcie:Istnieją dwa moduły do analizowania opcji wiersza poleceń:
(przestarzałe od Python 2.7,optparse
argparse
zamiast tego używaj ) igetopt
. Jeśli chcesz tylko wprowadzić pliki do skryptu, zobacz mocfileinput
.Referencyjna biblioteka Pythona jest twoim przyjacielem.
źródło
raw_input
został zmieniony nainput
Python 3.x - tutaj dokumentacjaLub dla Python 3:
źródło
raw_input
, jest to wbudowana funkcja.raw_input
nie jest już dostępny w Pythonie 3.x. Aleraw_input
został przemianowanyinput
, więc istnieje ta sama funkcjonalność.Dokumentacja zmiany
źródło
import fileinput result=[] for line in fileinput.input(): result.append(line)
Najlepszym sposobem przetwarzania argumentów wiersza poleceń jest
argparse
moduł.Służy
raw_input()
do uzyskiwania informacji od użytkownika. Jeśli zaimportujesz,readline module
użytkownicy będą mieli edytowanie linii i historię.źródło
Ostrożnie nie używaj tej
input
funkcji, chyba że wiesz, co robisz. W przeciwieństwie doraw_input
,input
akceptuje dowolne wyrażenie w języku Python, więc jest trochę podobneeval
źródło
Ten prosty program pomaga zrozumieć, w jaki sposób karmić dane wejściowe użytkownika z wiersza poleceń i pokazać pomoc w przekazywaniu nieprawidłowych argumentów.
1) Aby znaleźć pierwiastek kwadratowy z 5
2) Podanie nieprawidłowego argumentu innego niż liczba
źródło
Użyj „raw_input” do wprowadzania danych z konsoli / terminala.
jeśli chcesz tylko argumentu wiersza poleceń, takiego jak nazwa pliku lub coś np
możesz użyć sys.argv ...
sys.argv jest listą, gdzie 0 jest nazwą programu, więc w powyższym przykładzie sys.argv [1] to „nazwa_pliku.txt”
Jeśli chcesz mieć pełne opcje wiersza poleceń, użyj modułu optparse.
Pev
źródło
Jeśli używasz Pythona <2.7, potrzebujesz optparse , który, jak wyjaśnia dokument, stworzy interfejs do argumentów wiersza poleceń, które są wywoływane podczas uruchamiania aplikacji.
Jednak w Pythonie ≥2.7 optparse zostało przestarzałe i zostało zastąpione przez argparse, jak pokazano powyżej. Szybki przykład z dokumentów ...
źródło
Od Pythona
3.22.7, jest teraz argparse do przetwarzania argumentów wiersza poleceń.źródło
Jeśli jest to wersja 3.x, po prostu użyj:
Na przykład, chcesz wprowadzić 8:
x będzie równe 8, ale będzie to ciąg znaków, chyba że zdefiniujesz inaczej.
Możesz więc użyć polecenia konwersji, takiego jak:
źródło
W Python 2:
W Pythonie 3:
źródło
źródło