- First get a working script. “Hey GPT-4, write me a ChatGPT script that does
.” - Manually check over the script and iterate until it’s giving me what I want.
- “Now wrap the script into a
click
command-line interface.” I almost always specify to use an--input
flag and an--output
flag. - If the data it’s working with is human-readable, “Make it so that if
--input
is not specified, it reads data from stdin.” - If the data it’s writing is human-readable, “Make it so that if
--output
is not specified, it emits data to stdout.” - If the script is complicated enough that error logging is warranted: “Add logging and
colorlog
. Ensure all error messages are written tostderr
so that it does not clash with output.”
This advice is optimized for small Python scripts, usually under 200 lines in total, for automating semi-mundane tasks like
- Converting CSV or JSON into a more structured Markdown document.
- Cleaning up and working programmatically with Excel sheets.
- Creating tiny REPLs to help with human categorization of mundane data.
I often find myself creating tiny scripts like this to shuffle things in and out of the various enterprise systems I work with. Python is famously the second-best tool for everything, and it hasn’t let me down yet.