假设我在一个小应用程序中有以下字典.
dict = {'one': 1, 'two': 2}
Run Code Online (Sandbox Code Playgroud)
如果我想将具有dict名称和所有内容的确切代码行写入文件,该怎么办?python中有一个函数可以让我这样做吗?或者我是否必须先将其转换为字符串?转换它不是问题,但也许有一种更简单的方法.
我不需要将它转换为字符串的方法,我可以做.但如果有一个内置函数可以为我做这个,我想知道.
为了说清楚,我想写的文件是:
write_to_file("dict = {'one': 1, 'two': 2}")
Run Code Online (Sandbox Code Playgroud)
    Adr*_*son 56
该repr函数将返回一个字符串,该字符串是您的dict的确切定义(除了元素的顺序,dicts在python中是无序的).不幸的是,我无法告诉自动获取表示变量名称的字符串.
>>> dict = {'one': 1, 'two': 2}
>>> repr(dict)
"{'two': 2, 'one': 1}"
Run Code Online (Sandbox Code Playgroud)
写入文件是非常标准的东西,就像任何其他文件写入:
f = open( 'file.py', 'w' )
f.write( 'dict = ' + repr(dict) + '\n' )
f.close()
Run Code Online (Sandbox Code Playgroud)
        Joh*_*rra 22
使用 pickle
import pickle
dict = {'one': 1, 'two': 2}
file = open('dump.txt', 'w')
pickle.dump(dict, file)
file.close()
Run Code Online (Sandbox Code Playgroud)
并再次阅读
file = open('dump.txt', 'r')
dict = pickle.load(file)
Run Code Online (Sandbox Code Playgroud)
编辑:猜猜我误解了你的问题,对不起......但是泡菜可能会有所帮助.:)
Mik*_* D. 18
你正在寻找的是这样的东西吗?
def write_vars_to_file(_f, **vars):
    for (name, val) in vars.items():
        _f.write("%s = %s\n" % (name, repr(val)))
Run Code Online (Sandbox Code Playgroud)
用法:
>>> import sys
>>> write_vars_to_file(sys.stdout, dict={'one': 1, 'two': 2})
dict = {'two': 2, 'one': 1}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           208594 次  |  
        
|   最近记录:  |