Como eu imprimo uma certa linha de código python usando o terminal Linux?

0

Se eu estou escrevendo algum python e quero apenas que o terminal mostre uma certa linha, que comando eu uso? Por exemplo, meu programa é: print ("linha um") print ("linha dois") print ("linha três")

E eu só quero que o código na linha dois apareça no terminal - imprimir ("linha dois") - O comando que eu usaria para executar o programa inteiro é python programname.py, mas como eu imprimo uma linha específica?

    
por Sian Pike 26.01.2015 / 22:51

4 respostas

2

Supondo que você queira ver a linha n th de um arquivo, você pode simplesmente fazer:

sed -n '42p' yourfile.py

Substitua 42 pelo número da linha que você deseja ver.

Após a sua edição: Se você também quiser executar este código, simplesmente canalize-o para python :

sed -n '42p' yourfile.py | python
    
por 26.01.2015 / 23:12
1

% alternativaawk solução:

awk "NR==2" programname.py
    
por 27.01.2015 / 00:25
0

Se você não está confortável com o bash / shell, você pode escrever um script python para fazer isso também!

#!usr/bin/env python
# usage: ./script file line_no
import sys
data = ''
with open(sys.argv[1],'r') as f:
    data = f.read()
data = data.split('\n')
try:
    print data[sys[2] +1]
except IndexError:
    print "Line doesn't exist"

NOTA: Este é apenas um exemplo rápido e sujo. Você pode melhorar ao seu gosto.

    
por 03.06.2015 / 20:45
-2

Com base na resposta @DoorKnob, e no caso de alguém encontrar isso em uma pesquisa e querer encontrar a n-ésima linha de saída . Então faça isso.

run-program | sed -n '2p'

Isso imprimirá a 42ª linha de saída de run-program

por exemplo,

python yourfile.py | sed -n '2p'
    
por 26.01.2015 / 23:21