6

スクリプトのソースコードを印刷することは可能ですか (必ずしも Python イントロスペクションを使用する必要はありません)。

ソースも出力する短いpythonスクリプトを実行したい(実行されたコマンドを確認できるようにするため)。

スクリプトは次のようなものです。

command1()
#command2()
command3()

print some_variable_that_contain_src

run -i実際のアプリケーションは、魔法を使ってIPython からスクリプトを実行し、ソース (つまり、実行されたコマンド) を出力することです。このようにして、実行ごとにどのコマンドがコメントされているかを確認できます。さらに、ノートブックで実行すると、どのコマンドが使用されたかの痕跡が残ります。

解決

korylprinceソリューションを使用すると、このワンライナーをスクリプトの先頭に配置することになります。

with open(__file__) as f: print '\n'.join(f.read().split('\n')[1:])

これにより、最初の行を除いてスクリプト ソースが出力されます (これは単なるノイズになります)。スクリプトの別の「スライス」を印刷するためにスライスを変更することも簡単です。

代わりにファイル全体を印刷したい場合、ワンライナーは次のように簡略化されます。

with open(__file__) as f: print f.read()
4

2 に答える 2

13

パッケージでクレイジーなことをしていない限り、これをスクリプトの先頭に置きます

with open(__file__) as f:
    print f.read()

現在のファイルを読み込んで印刷します。

Python 3の場合は、代わりに必ず使用してください print(f.read())

于 2013-08-20T02:30:34.087 に答える
5

最も簡単な答えは次のとおりです。

import my_module

print open(my_module.__file__).read()

また、検査パッケージを使用してみました。

import inspect

import my_module

source_list = inspect.getsourcelines(my_module)

ソースコードが定義された文字列のリストが表示されます

for line in source_list[0]:
    print line

ソースコード全体を読みやすい形式で出力します

于 2013-08-20T02:29:14.290 に答える