import os
import stat
import sqlite3
file_exis = os.path.exists("Контакты.txt")
database_exis = os.path.exists("contact_book.db")
conn = sqlite3.connect("contact_book.db")
cursor = conn.cursor()
if file_exis:
os.chmod("Контакты.txt", stat.S_IWUSR)
if not database_exis:
cursor.execute("""CREATE TABLE contacts
(name text, phone_number text)""")
f = open("Контакты.txt", "a+")
def viewByName():
name = input("Введите имя контакта >>>")
sql = "SELECT * FROM contacts WHERE name=?"
cursor.execute(sql, [name])
print(cursor.fetchall())
def viewByNum():
number = input("Введите номер контакта >>>")
sql = "SELECT * FROM contacts WHERE phone_number=?"
cursor.execute(sql, [number])
print(cursor.fetchall())
def num():
cursor.execute("select count(*) from contacts")
var = cursor.fetchall()[0][0]
print(var)
def change():
name = input("Введите имя контакта >>>")
print("Введите 'name', чтобы изменить имя контакта")
print("Введите 'number', чтобы изменить номер контакта")
var = input(">>>")
if var == "name":
var1 = input("Введите новое имя контакта >>>")
cursor.execute("UPDATE contacts SET name = '{0}' WHERE name = '{1}'".format(var1, name))
print("Контакт успешно изменён")
elif var = input("Введите новый номер контакта >>>")
var1 = input("Введите новый номер контакта >>>")
cursor.execute("UPDATE contacts SET phone_number = '{0}' WHERE name = '{1}'".format(var1, name))
print("Контакт успешно изменён")
else:
print("Ошибка. Несуществующая команда")
conn.commit()
def delete():
name = input("Введите имя(название) контакта >>>")
sql = "DELETE FROM contacts WHERE name = '{0}'".format(name)
cursor.execute(sql)
conn.commit()
print("Контакт успешно удалён")
def add():
name = input("Введите имя(название) контакта >>>")
number = input("Введите номер контакта >>>")
cursor.execute("""INSERT INTO contacts
VALUES (?, ?)""", [name, number])
conn.commit()
print("Контакт успешно добавлен")
def command_check():
if command == "viewByName":
viewByName()
print()
elif command == "viewByNum":
viewByNum()
print()
elif command == "add":
add()
print()
elif command == "change":
change()
print()
elif command == "delete":
delete()
print()
elif command == "num":
num()
print()
elif command == "exit":
os.chmod("Контакты.txt", stat.S_IREAD)
f.close()
print("Выход из программы")
exit()
else:
print("Ошибка. Несуществующая команда")
print("Список команд")
print("viewByName - для просмотра контакта(по имени) \n"
"viewByNum - для просмотра контакта(по номеру) \n"
"add - для добавления контакта \n"
"change - для изменения контакта \n"
"delete - для удаления контакта \n"
"num - количество контактов в книге \n"
"exit - для выхода из программы")
print()
while True:
command = input("Введите команду >>>")
command_check()
if not database_exis:
cursor.execute("""CREATE TABLE contacts
(name text, phone_number text)""")
if command == "viewByName":
viewByName()
print()
elif command == "viewByNum":
print("viewByName - для просмотра контакта(по имени) \n"
"viewByNum - для просмотра контакта(по номеру) \n"
"add - для добавления контакта \n"
"change - для изменения контакта \n"
"delete - для удаления контакта \n"
"num - количество контактов в книге \n"
"exit - для выхода из программы")