#!/usr/bin/python import csv from datetime import datetime as dt import os DATA_DIR=os.path.expanduser('~/Journal/2026/Data') data_files = {} for root, _, files in os.walk(DATA_DIR): for file in files: name, ext = os.path.splitext(file) if ext == '.csv': data_files[name] = os.path.join(root, file) print(data_files.keys()) for idx, file in enumerate(data_files.keys()): print(f"{idx} - {file}") 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}")