是否有可能(不必使用python内省)打印脚本的源代码?
我想执行一个短的python脚本,也打印它的源(所以我可以看到执行了哪些命令).
脚本是这样的:
command1()
#command2()
command3()
print some_variable_that_contain_src
Run Code Online (Sandbox Code Playgroud)
真正的应用是我想用run -i魔术从IPython运行一个脚本并输出源(即执行的命令).通过这种方式,我可以检查每次执行时评论的命令.此外,如果在笔记本中执行,我会留下一些已使用过的命令.
使用korylprince解决方案我最终将这个单行放在脚本的开头:
with open(__file__) as f: print '\n'.join(f.read().split('\n')[1:])
Run Code Online (Sandbox Code Playgroud)
这将打印脚本源,但第一行除外(这只是噪音).修改切片也很容易打印脚本的不同"切片".
如果您想要打印整个文件,单行简化为:
with open(__file__) as f: print f.read()
Run Code Online (Sandbox Code Playgroud) python ×1