Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- import os
- COLUMNS = ['name', 'is_done']
- def add_todo(name: str):
- file_exists = os.path.exists("todos.csv")
- with open("todos.csv", "a", encoding="utf8", newline="") as file:
- writer = csv.DictWriter(file, fieldnames=COLUMNS)
- if not file_exists:
- writer.writeheader()
- writer.writerow({
- "name": name,
- "is_done": 0
- })
- def get_todos():
- with open("todos.csv", encoding="utf8", newline="") as file:
- reader = csv.DictReader(file)
- print("Zadania do zrobienia: ")
- for row_id, row in enumerate(reader, start=1):
- if row['is_done'] == "0":
- print("❌", end="")
- else:
- print("✅", end="")
- print(f" {row_id}: {row['name']}")
- def toggle_status(row_id_to_change: int):
- todos = []
- with open("todos.csv", encoding="utf8", newline="") as file:
- reader = csv.DictReader(file)
- for row_id, row in enumerate(reader, start=1):
- if row_id_to_change == row_id:
- if row['is_done'] == "0":
- row['is_done'] = "1"
- else:
- row['is_done'] = "0"
- todos.append(row)
- with open("todos.csv", "w", encoding="utf8", newline="") as file:
- writer = csv.DictWriter(file, fieldnames=COLUMNS)
- writer.writeheader()
- writer.writerows(todos)
- get_todos()
- action = None
- while action not in ["d", "z"]:
- action = input("Co chcesz zrobić? [d] - dodaj, [z] - zmień")
- if action == "d":
- name = input("Co masz do zrobienia? ")
- add_todo(name)
- else:
- todo_id = input("Które todo chcesz zmienić? ")
- toggle_status(int(todo_id))
- get_todos()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement