import os
from pathlib import Path
NOTES_DIR = Path("notes") # Папка с записями
# Path - специальный класс для работы с путями
NOTES_DIR.mkdir(exist_ok=True) # создать папку, exist_ok=True - не вызовит ошибки если папка уже существует (что нам и надо)
def ask_note_name():
fn = Path('')
while not fn.is_file(): # пока не выбран существующий файл
for filename in NOTES_DIR.glob("*.txt"): # все файлы с расширением txt, * - любой символ в имени
print(filename.stem) # stem - имя файла. (если путь files/19.txt - то stem 19
stem = input("Введите номер записи: ")
fn = NOTES_DIR / f"{stem}.txt" # Соединить имя файла с папкой
return fn
def open_note(fn):
with open(fn, "r+") as f:
print(f.read())
while True:
new_line = input()
if not new_line: break # выйти если ничего не ввёл.
f.write(new_line+'\n')
def new_note():
last_note_num = 0
for fn in NOTES_DIR.glob("*.txt"):
note_num = int(fn.stem)
if note_num > last_note_num:
last_note_num = note_num
fn = NOTES_DIR / f"{last_note_num+1}.txt"
open(fn, 'w').close() # просто создать этот файл
open_note(fn)
def delete_all():
os.remove(fn)
def main():
print("1 - открыть запись\n"
"2 - новая запись\n"
"3 - удалить запись\n"
"4 - удалить все записи")
action = int(input())
if action == 1:
open_note(ask_note_name())
elif action == 2:
new_note()
elif action == 3:
os.remove(ask_note_name())
elif action == 4:
delete_all()
if __name__ == "__main__": # если запущен напрямую этот файл, а не импортирован как модуль
main()
# будут вопросы, задавай.
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
import os
from pathlib import Path
NOTES_DIR = Path("notes") # Папка с записями
# Path - специальный класс для работы с путями
NOTES_DIR.mkdir(exist_ok=True) # создать папку, exist_ok=True - не вызовит ошибки если папка уже существует (что нам и надо)
def ask_note_name():
fn = Path('')
while not fn.is_file(): # пока не выбран существующий файл
for filename in NOTES_DIR.glob("*.txt"): # все файлы с расширением txt, * - любой символ в имени
print(filename.stem) # stem - имя файла. (если путь files/19.txt - то stem 19
stem = input("Введите номер записи: ")
fn = NOTES_DIR / f"{stem}.txt" # Соединить имя файла с папкой
return fn
def open_note(fn):
with open(fn, "r+") as f:
print(f.read())
while True:
new_line = input()
if not new_line: break # выйти если ничего не ввёл.
f.write(new_line+'\n')
def new_note():
last_note_num = 0
for fn in NOTES_DIR.glob("*.txt"):
note_num = int(fn.stem)
if note_num > last_note_num:
last_note_num = note_num
fn = NOTES_DIR / f"{last_note_num+1}.txt"
open(fn, 'w').close() # просто создать этот файл
open_note(fn)
def delete_all():
for fn in NOTES_DIR.glob("*.txt"):
os.remove(fn)
def main():
print("1 - открыть запись\n"
"2 - новая запись\n"
"3 - удалить запись\n"
"4 - удалить все записи")
action = int(input())
if action == 1:
open_note(ask_note_name())
elif action == 2:
new_note()
elif action == 3:
os.remove(ask_note_name())
elif action == 4:
delete_all()
if __name__ == "__main__": # если запущен напрямую этот файл, а не импортирован как модуль
main()
# будут вопросы, задавай.