打印源代码的Python脚本


问题内容

是否有可能(不必使用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()

问题答案:

只要您不对软件包做任何疯狂的事情,请将其放在脚本的顶部

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

它将读取当前文件并打印出来。

对于python 3,请确保使用代替 print(f.read())