#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Filename : phoneproject_beta1.py
import colorama
from colorama import Fore, Back, Style
colorama.init()
users = {}
filename = 'phonenumbers.txt'
flag = 1
while flag:
message = input(Fore.CYAN + "Enter kommand: ")
try:
if message.lower().strip() == 'wr':
user_name = input(Fore.CYAN + "Enter name and surname: ")
user_phone = input(Fore.CYAN + "Enter user's phone: ")
users[user_name] = user_phone
with open(filename, 'a') as f_object:
for key, value in users.items():
f_object.write('\n' + key + ': ' + value)
elif message.lower().strip() == 'pr':
f = open(filename)
while True:
line = f.readline()
if len(line) == 0: # Нулевая длина обозначает конец файла (EOF)
print(Fore.WHITE + "The empty")
break
print(Fore.GREEN + line)
elif message.lower().strip() == 'cl':
with open(filename, "w"):
pass
users = {}
elif message.lower().strip() == 'exit':
flag = False
except FileNotFoundError:
msg = "Sorry, the file " + filename + " does not exlist."
print(msg)
Учился по книге AbyteofPython, была задача сделать телефонный справочник решил дополнить его. Программа записывает имя и телефон юзера при комонде wr, а при команде pr выводит содержимое файла. Но когда записываешь больше одного юзера Python начинает удваивать и смешивать результаты. Вот так:
Enter kommand: pr
dd dd: 4444dd dd: 4444ff ff: 5555
The empty
Enter kommand:
Что можно с этим сделать?