Linux端末を使用して特定のPythonコード行を印刷するには?

Linux端末を使用して特定のPythonコード行を印刷するには?

Pythonを作成していて、端末に特定の行だけを表示したい場合は、どのコマンドを使用する必要がありますか?たとえば、私のプログラムは次のようになります。 print("1 行目") print("2 行目") print("3 行目")

2行目のコードのみが端末に表示されるようにします。 print("2行目") - プログラム全体を実行するために使用するコマンドはpythonprogramname.pyですが、特定の行をどのように印刷しますか?

答え1

nファイルの行を見たいと仮定すると、次のように簡単に実行できます。

sed -n '42p' yourfile.py

42見たい行番号に置き換えてください。

編集後:必要に応じて実装するこのコードは次にパイプするだけですpython

sed -n '42p' yourfile.py | python

答え2

代替awkソリューション:

awk "NR==2" programname.py

答え3

bash / shellに慣れていない場合は、Pythonスクリプトを作成してこれを行うこともできます!

#!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"

注:これは単に速くて汚い例です。必要に応じて改善できます。

答え4

@DoorKnobの回答に基づいて、誰でも検索でこれを見つけた場合出力のn番目の行を見つけたいです。。それではこれをやってください。

run-program | sed -n '2p'

これにより、出力の42行目が印刷されます。run-program

例えば

python yourfile.py | sed -n `2p`

関連情報