Ho uno script CLI e voglio che legga i dati da un file. Dovrebbe essere in grado di leggere in due modi:Come leggere da stdin o da un file se nessun dato viene reindirizzato in Python?
cat data.txt | ./my_script.py
./my_script.py data.txt
po '-a come grep
, per esempio.
quello che so:
sys.argv
eoptparse
Permettetemi di leggere qualsiasi args e opzioni facilmente.sys.stdin
Permettetemi di leggere i dati di sottofondofileinput
rendere il processo completamente automatico
Sfortunatamente:
- utilizzando
fileinput
utilizza standard input e gli eventuali argomenti come input. Quindi non posso usare opzioni che non sono nomi di file mentre cerca di aprirli. sys.stdin.readlines()
funziona bene, ma se non lo faccio tubo di tutti i dati, si blocca fino a quando io entro Ctrl + D- non so come implementare "se nulla in stdin, lette da un file in args "perché
stdin
è sempreTrue
in un contesto booleano.
Mi piacerebbe un modo portatile per farlo, se possibile.
Grazie a tutti, ho imparato molto oggi. –