我想将当前脚本作为 Python 变量中的字符串获取。
我发现了两种次优的方法,但我希望有更好的解决方案。我发现:
The inspect
导入有一个getsource
方法,但只返回一个函数(或类或其他)的代码,而不是整个脚本。我找不到将整个脚本的对象传递给的方法getsource
.
我可以使用找到脚本文件的文件位置__file__
or sys.argv[0]
and open
它来阅读。但这对我来说似乎太间接了。
那么:有没有一种(更好的)方法来以字符串形式访问整个脚本?
如果相关:我更喜欢 Python 2.7 解决方案而不是 3.x。
Try:
import inspect
import sys
print inspect.getsource(sys.modules[__name__])
Or even:
import inspect
import sys
lines = inspect.getsourcelines(sys.modules[__name__])[0]
for index, line in enumerate(lines):
print "{:4d} {}".format(index + 1, line)
包含代码的文件被认为是一个Python“模块”,并且sys.modules[__name__]
返回对此模块的引用。
Edit
或者甚至,如@ilent2建议,像这样,而不需要sys
module:
import inspect
print inspect.getsource(inspect.getmodule(inspect.currentframe()))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)