Предмет: Информатика, автор: ratesd2345678901

Помогите с пайтоном(надо использовать библиотеку os)

Приложения:

Ответы

Автор ответа: nikdissv
1

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()

# будут вопросы, задавай.


ratesd2345678901: Просто я ещё пельмень в пайтоне
ratesd2345678901: NOTES_DIR = Path("notes") тут место записей Я указываю путь на папку?
ratesd2345678901: И я не совсем понимаю что я должен указать сдесь
ratesd2345678901: print(filename.stem)
ratesd2345678901: Здесь*
ratesd2345678901: И можешь дать свой дискорд или что-то подобное пожалуйста
ratesd2345678901: Я просто хочу тебе кинуть код который у меня вышел
nikdissv: t.me/john_doue
nikdissv: и да, там ты указываешь папку
nikdissv: stem - это имя файла без его папки и расширения. если у тебя есть строка вместо Path, можно написать так: filename.rsplit('/', 1)[-1].rsplit('.', 1)[0]
Похожие вопросы
Предмет: Математика, автор: apanchenko0710
Предмет: Математика, автор: agimannuraina