Python 将变量转储到文件

Python 将变量转储到文件,python,Python,我是python的新手,来自php。如何将变量的所有内容转储到文件中,类似于var_dump?在四处搜索之后,我得出了以下结论: from inspect import getmembers from pprint import pprint pprint(getmembers(_variable_)) 但是,它显示在命令窗口中,不是一个友好的可读文件。我确实知道如何写入文件,我尝试过以下方法: f.write(pprint(getmembers(_variable_))) 但它给了我一个类

我是python的新手,来自php。如何将变量的所有内容转储到文件中,类似于var_dump?在四处搜索之后,我得出了以下结论:

from inspect import getmembers
from pprint import pprint
pprint(getmembers(_variable_))
但是,它显示在命令窗口中,不是一个友好的可读文件。我确实知道如何写入文件,我尝试过以下方法:

f.write(pprint(getmembers(_variable_)))
但它给了我一个类型错误。非常感谢您的帮助,谢谢。

您试过使用吗?它在标准库中,它应该像这样工作:

import pickle

# Write to file
pickle.dump(obj, open("file.dat", "wb"))

# Read that file
obj = pickle.load(open("file.dat", "rb"))

假设您对
pprint
的输出外观感到满意,并且不寻求对象序列化,那么您将执行您想要执行的操作

from pprint import pformat
f.write(pformat(getmembers(_variable_)))

看看pickle模块我相信这就是我要找的,但我不知道怎么读。我想要的是能够通过转储读取数据,并以可读的方式查看所有结构。使用pickle,一些数据是人类可读的,但不是全部;dump(obj,…)-它是“人类可读的”-但它只能编码本机类型,如数字、字符串、字典和列表-而pickle适用于任意Python对象。因此,您可能需要pickle。它不如pickle完整,但如果你使用的都是“简单”的对象,就像@jsbueno所说的那样,它就起到了作用。我想我想要的是像pickle这样的序列化。你打算把对象读回内存吗?如果是,那么序列化肯定是您所需要的。如果这只是人类能够阅读的东西,那么你可能不会。你的程序,所以只有你能知道。祝你好运