#!/usr/bin/python
+import csv
+from datetime import datetime as dt
import os
-DATA_DIR=os.path.expanduser('~/Journal/2026/data')
+DATA_DIR=os.path.expanduser('~/Journal/2026/Data')
data_files = {}
-os.path.expanduser('~/Journal/2026/data')
for root, _, files in os.walk(DATA_DIR):
for file in files:
name, ext = os.path.splitext(file)
data_files[name] = os.path.join(root, file)
print(data_files.keys())
-choice = input()
+for idx, file in enumerate(data_files.keys()):
+ print(f"{idx} - {file}")
-file = data_files[choice]
+user_input = input(f"Select a file:\n").strip() or default
+key = list(data_files.keys())[int(user_input)]
+
+file = data_files[key]
print(file)
+
+with open(file, 'r') as f:
+ reader = csv.reader(f, delimiter=',', quotechar='"')
+ fields = next(reader) # require header row
+ first_example = next(reader)
+ for line in reader:
+ last_example = next(reader)
+
+print(first_example)
+print("...")
+print(last_example)
+
+
+DATE_FORMAT = '%Y-%m-%d'
+
+def today():
+ return dt.now().strftime(DATE_FORMAT)
+
+values = {}
+for key in fields:
+ default = ''
+ if key == 'date':
+ default = today()
+ user_input = input(f"{key} [{default}]\n").strip() or default
+ if user_input == '?':
+ print(f"Example: {first_example[fields.index(key)]} ... {last_example[fields.index(key)]}")
+ user_input = input(f"{key} [{default}]\n").strip() or default
+
+ values[key] = user_input
+
+print("Break with Ctrl+C if incorrect:")
+print(values)
+input() # Assume break with Ctrl+C if incorrect
+
+with open(file, 'a') as f:
+ writer = csv.DictWriter(f, fields)
+ writer.writerow(values)
+ print(f"Updated {file}")
+
+