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