Como eu tenho um script Python que a) pode aceitar a entrada do usuário e como faço para que ele b) seja lido nos argumentos se executado a partir da linha de comando?
python
input
command-line-arguments
Teifion
fonte
fonte
argparse
vez deoptparse
.Respostas:
Para ler a entrada do usuário, você pode tentar o
cmd
módulo para criar facilmente um mini-interpretador de linha de comando (com textos de ajuda e preenchimento automático) eraw_input
(input
para Python 3+) para ler uma linha de texto do usuário.Entradas de linha de comando estão em
sys.argv
. Tente isso no seu script:Existem dois módulos para analisar as opções da linha de comando:
(obsoleto desde o Python 2.7, use emoptparse
argparse
vez disso) egetopt
. Se você quiser apenas inserir arquivos no seu script, observe o poder defileinput
.A referência da biblioteca Python é seu amigo.
fonte
raw_input
foi renomeado parainput
no Python 3.x - documentação aquiOu para Python 3:
fonte
raw_input
, é uma função interna.raw_input
não está mais disponível no Python 3.x. Masraw_input
foi renomeadoinput
, existe a mesma funcionalidade.Documentação da mudança
fonte
import fileinput result=[] for line in fileinput.input(): result.append(line)
A melhor maneira de processar argumentos de linha de comando é o
argparse
módulo.Use
raw_input()
para obter a entrada do usuário. Se você importar,readline module
seus usuários terão edição e histórico de linhas.fonte
Cuidado para não usar a
input
função, a menos que você saiba o que está fazendo. Ao contrárioraw_input
,input
aceita qualquer expressão python, então é meio queeval
fonte
Este programa simples ajuda você a entender como alimentar a entrada do usuário na linha de comando e mostrar ajuda na transmissão de argumentos inválidos.
1) Para encontrar a raiz quadrada de 5
2) Passando argumento inválido que não seja o número
fonte
Use 'raw_input' para entrada de um console / terminal.
se você quiser apenas um argumento de linha de comando como um nome de arquivo ou algo assim, por exemplo
então você pode usar o sys.argv ...
sys.argv é uma lista em que 0 é o nome do programa, portanto, no exemplo acima, sys.argv [1] seria "file_name.txt"
Se você deseja ter opções completas de linha de comando, use o módulo optparse.
Pev
fonte
Se você estiver executando o Python <2.7, precisará optparse , que, conforme o documento explica, criará uma interface para os argumentos da linha de comando chamados quando o aplicativo for executado.
No entanto, no Python ≥2.7, optparse foi descontinuado e foi substituído pelo argparse, como mostrado acima. Um exemplo rápido dos documentos ...
fonte
No Python
3.2.2.7, agora existe argparse para processar argumentos de linha de comando.fonte
Se for uma versão 3.x, basta usar:
Por exemplo, você deseja inserir 8:
x será igual a 8, mas será uma sequência, exceto se você definir de outra forma.
Então você pode usar o comando convert, como:
fonte
No Python 2:
No Python 3:
fonte
fonte