保存和删除文件IO

时间:2013-09-01 00:25:52

标签: file-io for-loop dictionary python-3.x

两部分问题。

首先,我怎样才能改变这种情况(我已尝试使用'for',但我无法弄明白),以便它可以保存; '键值'而不是'{key:value}'。

with open("phonebook.txt", "w") as x:
    json.dump(a, x)

其次,如何使用用户输入从文件中删除。 我看不到改变这个从文件中删除而不是字典'a'的方法;

name = input("enter name of contact you want to delete: ")
if name in a:
    del a[name]

EDIT。这就是我现在所做的,但它没有做什么预期(我也尝试添加.readlines,其中x只是错误。

def save(a):
    with open("phonebook.txt", "w") as x:
        for k in a:
            json.dump(str(k)+" "+str(a[k]), x)

def load():
    a = {}
    with open("phonebook.txt", "r") as f:
        for l in f:
            a[l[0]] = l[1]
        print (a)

def save工作正常(据我所知,无论如何)

我也试过c = l.split()和[c [0]] = c [1]。只是不想工作!

1 个答案:

答案 0 :(得分:1)

第一部分

这不是JSON格式。如果您需要其他东西,请不要使用它。使用纯文本文件,例如

    with open("phonebook.txt","w") as file :
        for key, value in a.items() :
            file.write(str(key)+" "+str(value))

第二部分

看起来您已将文件加载到字典a中。在这种情况下,您只需要在删除后将字典a写回文件。如果您尚未将文件加载到字典中,则可以使用:

    a= {}
    with open("phonebook.txt") as file :
        for line in file.readlines() :
            content= line.split()
            a[content[0]]= content[1]