当前位置:  开发笔记 > 编程语言 > 正文

如何在Python中获取当前脚本的代码?

如何解决《如何在Python中获取当前脚本的代码?》经验,为你挑选了1个好方法。

我想将当前脚本作为Python中变量的字符串.

我找到了两种次优方法,但我希望有更好的解决方案.我发现:

    inspect进口有一个getsource方法,但只返回一个函数(或类或其他),而不是整个脚本的代码.我找不到将整个脚本的对象传递给的方法getsource.

    我可以用找到脚本文件的文件位置,__file__或者sys.argv[0]open它来阅读.但这对我来说似乎太间接了.

那么:是否有(更好的)方法以字符串形式访问整个脚本?

如果相关:我更喜欢3.0以上的Python 2.7解决方案.



1> Will..:

尝试:

import inspect
import sys

print inspect.getsource(sys.modules[__name__])

甚至:

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__]返回对该模块的引用.

编辑

或者甚至像@ ilent2建议的那样,不需要sys模块:

import inspect

print inspect.getsource(inspect.getmodule(inspect.currentframe()))

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有