在python中用一个键和几个值写一个字典到一个文件

时间:2013-11-02 19:55:36

标签: python file dictionary

file_name=raw_input("Where would you like to save the file?(the file name will be dits)")
    output=open(file_name+"dits.txt","w")#saves the path
    k=person.keys()
    output.write(k)
    v=person.values(k)
    i=0
    for xrange in 3:# prints the values into a readable file
        output.write(v)
        output.write(" ")
        i=i+1
    output.close()

我试图将字典保存到文件中 字典有1个键和3个值

person[name]=(bd,email,homepage)

这是我保存字典的方式 我的代码有什么问题?我一直试图修复它大约一个小时 谢谢!

2 个答案:

答案 0 :(得分:2)

如果您不需要用户可读的表示,请查看对象序列化的pickle module

如果你需要一些可读的东西,标准库中包含JSON encoder,wjich将序列化基本数据类型(字符串,数字,列表,字典)。

答案 1 :(得分:1)

你的一般方法在这里是错误的,我不知道我是否应该做你的作业,但这是你编写的程序的一个版本:

# Request the file name
file_name=raw_input("Where would you like to save the file?(the file name will be dits)")

# Open the file
output=open(file_name+"dits.txt","w")
keys=person.keys()

# Iterate through the keys and write the values to each line
try:
    for key in keys:
        output.write(key+" ")
        output.write(" ".join([str(val) for val in person[key]]))   # Write all values to a line
        output.write("\n")
finally:
    output.close()

它比你的更通用(只是将所有值的字符串版本写入文件),但我认为具有较少特定需求的人可能会在某些时候阅读此内容。

注意:这仅适用于您特别需要以空格分隔的键列表以及原始问题措辞方式的值。对于没有这些非常具体要求的人,我同意pickle或json或其他一些标准的序列化格式是可取的!