我如何在python中的字典中添加一些内容,这些内容存在于另一个python文件的另一个文件中



我正在尝试以python字典的形式获取联系人,该字典位于名为"phone.py"的文件中,我想从另一个名为"test.py"的文件的另一个函数向该字典添加一个联系人。

电话.py

phone_numbers={
'john': '+91123456789',
'berry': '+91987654321',
}

测试.py

import phone.py
def add_contact():
name_contact = input("what is the name :")
phone_contact = input("contact number")
file = open("phone.py", "a", encoding='utf-8')
file.truncate()
file.write("'"+name_contact+"'" + ':'+"'+91"+phone_contact+"'"+",")
file.close()
add_contact()

我目前得到的结果。

电话.py

phone_numbers={
'john': '+91123456789',
'berry': '+91987654321',
}'jerry': '+916543217890',

我想要的。

电话.py

phone_numbers={
'john': '+91123456789',
'berry': '+91987654321',
'jerry': '+916543217890',
}

您的文件包含文本内容。您可以使用以下方法将行添加到您的文件

def add_contact():
name_contact, phone_contact = read_param()
lines = None
with open('phone.py') as input_file:
lines = input_file.readlines()
lines[-1:] = "'{0}':'+91{1}',{2}".format(name_contact, phone_contact, 'r')
lines.append("}")
with open("phone.py", 'w') as output_file:
output_file.writelines(lines)
output_file.close()
def read_param():
name_contact = input("what is the name :")
phone_contact = input("contact number :")
return name_contact, phone_contact

但最好将数据保持为json格式,甚至更简单(不是dict格式,而是每行一个联系人(

例如

  1. 像这样的简单记录"john":"91123456789";"浆果":"91987654321";。。

并添加新行

def append_line():
with open('phone.py', 'a') as input_file:
name_contact, phone_contact = read_param()
input_file.writelines("'{0}':'+91{1}'".format(name_contact, phone_contact))
  1. json

您的文件内容如下

{
"john": "+91123456789",
"berry": "+91987654321"
}

并使用以下代码

def add_contact_json():
with open('phone.py') as json_file:
data = json.load(json_file)
name_contact, phone_contact = read_param()
data[name_contact] = "'+91{0}".format(phone_contact)
with open('phone.py', 'w') as json_file:
json.dump(data, json_file)

最新更新