我正在尝试以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格式,而是每行一个联系人(
例如
- 像这样的简单记录"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))
- 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)