转储已加载内存中的Python模块内容
我运行了Python的REPL工具,并导入了一个Python模块。我可以把这个模块的内容保存到一个文件里吗?这样做可以吗?谢谢!
3 个回答
0
你可以通过获取模块对象的引用来开始:
modobject = __import__("modulename")
不过,这些对象是不能被“腌制”的(也就是不能被保存成文件)。你可以尝试使用 dir(modobject)
来查看一些有用的信息,同时处理可能出现的错误……或者你想要的其实是 dir(modobject)
的字符串表示形式?
0
你是指像这样吗?
http://www.datamech.com/devan/trypython/trypython.py
我觉得这不太可能,因为这是一个非常受限制的环境。
这个 __file__
属性是假的,所以并不对应一个真实的文件。
1
你想以什么格式来写这个文件呢?如果你想要和导入时完全一样的格式,其实很简单——基本上就是文件对文件的复制。例如,如果这个模块叫做 blah
,你可以这样做:
>>> import shutil
>>> shutil.copy(blah.__file__, '/tmp/blahblah.pyc')