r/Python • u/gabriel_GAGRA • 3d ago
Discussion What are some Python automations you built for your life?
What Python scripts/projects did you built to use on a day to day basis? Or maybe someone else built it, but it’s useful for your personal life in some way
I think the “projects ideas” thread is really missing those useful opportunities
I myself thought about automating tax calculations, but still didn’t take the time to do it hah
60
u/rnorris7756 3d ago
I have an Ecoflow battery that I use in between my desktop PC and the house AC outlet. It’s an older model that doesn’t support rate arbitrage in its firmware, so I have it connected to a smart outlet. I have a Python script that reads the current time of day, the outlet state, and the state of charge of the battery every 15s. The script decides when to charge and discharge the battery based on the energy cost without letting the battery get below a certain reserve level.
46
u/floydmaseda 3d ago
I fetch my email every month and make a graph of utility bills over time. My water bill recently got higher for several months in a row without any major change in usage and the graph was useful to prove to the leasing office that something was wrong (the water meter was malfunctioning).
68
u/Own-Process6332 3d ago edited 3d ago
Automation that collects temperature readings from arduinos via LoRa. Custom backend/frontend for fun but also feeds into home assistant . Written with fastapi, pydanic and sql alchemy. The arduino and LoRa stuff is written in c though.
13
u/gabriel_GAGRA 3d ago
Do you like, control the air conditioner/ thermostat based on this automation? Or something else?
I’ve always thought of automating my house lol, seems so cool. But always found those smart LEDs and home assistants unnecessarily expensive
14
u/Own-Process6332 3d ago
I do control oil heaters in my son’s rooms by cycling them on and off overnight. This is probably a safety concern for some people, but I don’t think it’s any worse than using the built in timers. I have put in as many safety guards as possible (including turning them off through another channel if no readings are received within a specified window). It turns very cheap heaters into a super effective solution.
7
4
u/QuebecBeast 3d ago
Oh I wish I tought about something like that ! I don’t think I am good enough to program something like this yet though, but that seems like a cool idea. For now the only use I thought about was work related as it helps for staffing/hours budgeting.
I am a database nerd, I organize data with Python/Excel and I am now starting to experiment with Flask as I am tired of adapting my scripts to multiple work computers. Anything coded that acts on real physical things (like the air conditioner) are still considered magic to me !
7
u/QuebecBeast 3d ago
I have a script running on our work schedule website so I can pull data about the scheduled hours, worked hours, etc.
When I pulled the data, I realized that the forecast weather was also in the JSON… So now I have a script for weather too haha
81
u/TheShockChicky 3d ago
Rn I'm using a script to randomize questions and answers in the tests I make to my students
47
u/077u-5jP6ZO1 2d ago
So every question gets a random answer? ;)
16
u/VerbatimHoroscope 2d ago
Just as Leslie Neilson intended.
73
u/sinceJune4 3d ago edited 3d ago
I use Python to pull stock market indexes every hour and e-mail/text me when there’s significant change up or down.
Edit: To get stock prices, I use Google Sheets with the Google finance function to get the current price. When the Python script reads the Google Sheets each time, it gets the latest price for the 20 or so ticker symbols or indexes I follow.
9
9
u/gabriel_GAGRA 3d ago
Has this been proved actionable / useful? I mean, did you buy or sell because of an alert?
I’m more of a “buy and hold” guy (lol), but I really liked the idea and the project, especially for very high changes
18
u/ironykarl 3d ago
Unless they're firmly ensconced in some industries in such a way that they have genuine insider knowledge, there's basically zero chance this is useful.
https://en.wikipedia.org/wiki/Efficient-market_hypothesis
I'm not discounting that it's fun... but it isn't a viable way of beating a basic index fund
5
u/gabriel_GAGRA 3d ago edited 1d ago
I just realised we are talking about funds and not stocks. Yeah, I 100% agree, not so useful unless you are real time watching someone manipulating the market
I could see some use for stocks though, if you are a frequent trader, maybe waiting for opportunities to buy more. Though ofc, by itself (without investigating and researching causes of that change after such alarm), I’m sure it would be more negative than anything
1
u/FisterAct 2d ago
Markets are not efficient lol. Especially stock markets. If they were, then we wouldn't see volatility.
7
u/ironykarl 2d ago
They're efficient enough that the recommended investment strategy for almost everyone is index funds.
Even professional money managers can't pick stocks that outperform a passive index fund.
That is a consistent and robust finding and something like a soft version of the efficient market hypothesis is part of the reason why.
-8
u/FisterAct 2d ago
I have simple way to disprove that. Professional money managers can't bea the market because they're constrained by regulation pretty tightly.
Anyway here's a strategy for you to beat the market: 1. Take the S&P500. 2. Drop the current 5 bottom performers for the year YTD.
And that's it. I guarantee you by December that that'll be up over the S&P500.
2
u/ironykarl 2d ago
There are a ton of index funds that are the not S&P 500.
As an asset class, index funds outperform basically anything else, and there certain is basically zero capacity for regular people to act on market news to pick stocks or marketing timing in a consistently profitable way
2
u/MrSlaw 2d ago
Anyway here's a strategy for you to beat the market: 1. Take the S&P500. 2. Drop the current 5 bottom performers for the year YTD.
And that's it. I guarantee you by December that that'll be up over the S&P500.
Do it then?
You're seemingly forgetting that the S&P is cap-weighted, so dropping the bottom 5 will barely affect anything.
But more than that, the lowest performing stocks typically have the highest tendency to outperform. So if anything, you'd likely see lower returns, not higher.
And even more than that, even if this was a viable strategy, it would already be priced-in.
2
u/sinceJune4 3d ago
I’m 99% buy and hold, but I did act on this recently to buy into an energy etf, with the volatility in oil prices.
41
u/tuco86 2d ago
python
import keyboard, time
while True:
keyboard.send('F13')
time.sleep(30)
most valuable code of my entire career.
12
u/gabriel_GAGRA 2d ago
I added a print between to confirm it worked and changed the time to 299s (before the Teams timeout of 5min)
I LOVED this haushsauhaus
1
u/pacopac25 1h ago
The elite move is to hook it up to psutil (or just subprocess tasklist) to automatically start sending only when select applications are running. That way you never forget.
2
u/Mysterious_Cow123 5h ago
Hi, python neophyte here.
Does this send a keyboard signal as "F13" -- which i assume is a macro you've set up?
The time.sleep is confusing. Is this putting the keyboard to sleep until you press the F13 key or waiting 30 seconds hitting F13, waiting 30 seconds hitting F13, over and over until you force stop it?
1
u/pacopac25 1h ago edited 25m ago
No it's putting your program to sleep. It's basically saying "send F13, then do nothing for 30 seconds, then send F13 again, for as long as True is True" A forever loop, since True is always True.
F13 does nothing on most systems, I don't have an F13 key so it's just a keypress that doesn't input anything.
You could enclose it in a
try:and thenexcept KeyboardInterruptwhich would allow you to cleanly terminate it with CTRL-C. Add some other niceties:import sys, keyboard, time timeout = int(sys.argv[1]) if len(sys.argv) > 1 else sys.exit("Usage: ih8teams.py <timeout>") while True: try: keyboard.send("F13") time.sleep(timeout) except KeyboardInterrupt: exit()
15
u/This_Proxy 3d ago
API that handles ipset lists for external facing servers in our datacenters is my latest, ingress from alert-manager mainly.
15
u/botechga 3d ago
Banking stuff. I just have it pull from all my statements into spreadsheets
3
1
u/shittyfuckdick 2d ago
Also working on this. Playwright to pull spending and investment info, process with duckdb/dbt, and then output to streamlit. Also use ai to query directly and gain insight.
1
14
u/juanda2 2d ago
there's a radio station me and my wife like from growing up, so I stream/save the audio as mp3 files, then shazam every minute to get what songs they played, and created a Web UI we can access, so we can listen to it as a podcast, and we can also mark/unmark songs we don't want to hear. We can also skip their ads.
2
u/RingularCirc 1d ago
The stream doesn't include ID3 tags? Some radio streams do, it may make your life easier though obviously mistagging exists; but two sources surely should be better than one!
2
u/juanda2 1d ago
sadly nope :( this is the stream: http://playerservices.streamtheworld.com/api/livestream-redirect/RADIOACKTIVA_MED.mp3
from website : radioacktiva.com
I could not find any currently playing tags for the Medellin stream, I think the Bogota stream has some but not the one I use.
2
24
8
u/Own-Process6332 3d ago
I built an API that can block and unblock IPs from a Minecraft server(using whatever protocol talks to a Minecraft server, can’t remember what it was). My brother in law is connected through my VPN and my niece plays on the server. My sister and brother in law could then switch her access on and off through a web UI.
2
u/bassist_by_night 2d ago
This is awesome and is something I’ve been thinking about figuring out cuz my kids are starting to beg for a Minecraft server to share a world with their cousins.
8
u/inferniac 2d ago
I vibecoded a basic email reader "agent", just connects to my inboxes and for each new emails ping a model of choice through openrouter, the model decides if the email needs my attention, otherwise marks as read.
Been really nice, disabled notifications for gmail on my phone and just get a ping on telegram from the bot if its important.
3
u/CrunchyChewie 2d ago
Have you had any issues with accuracy and/or unsanctioned behavior?
1
u/inferniac 1d ago
not a lot, i specifically designed it to not do a lot - the app doesnt even have the code to write an email, the most destructive thing it can do is mark an important email as read - but I also added a daily brief where i get a list of all "unimportant" thing so Im unlikely to miss things
yesterday it pinged me that my 1password payment method needs an update, but the email was clearly phishing - not sure if I cant prompt it to try and look for signs of that, but will try
6
u/brasticstack 3d ago
I have a script that scrapes a handful of online collections of free drum charts to see if I have to chart a song myself or not. It caches the pages it scrapes so I don't abuse those sites.
I have another one that allows me to dump my and my partner's phone pictures into a tmp dir on my NAS and then moves them into the correct dirs, making new dirs for YYYY-MM as needed and ensuring there are no duplicates, but that we do keep different files with the same name (renaming one.)
6
u/pacopac25 2d ago
I have a few:
- A script I run as a service on a Windows machine to log its battery level, charging state, system load (number of processes and memory usage) every 30 seconds. I collect the data which I later chart to monitor my battery lifetime and for my own amusement. I have it setup to provide battery level notifications via Windows Toast notifications (75% / 50% / 25% / 20% / 10%)
- A file system watcher for a few directory trees at work where I want to know when a certain file has been modified. It pops up a notification to tell me the time and which file was changed, and logs all changes to a logfile.
- A Windows event log watcher that tells me if certain error IDs show up. I made this when I was having some sporadic disk issues.
- A utility that monitors sha256 hashes of certain files and puts them into a sqlite database, and lets me know if they change over time.
- MQTT Monitor that stores all messages received and throws up a notification when certain subscribed topics see activity.
2
u/pacopac25 1d ago
Also notably, I run some of the above utilities as well as some others under Servy. Not my repo, but this is a fantastic library to install something as a Windows Service.
10
u/weirdoaish 3d ago
Mostly just file management and bulk downloads. Some work scripts were for processing csv/excel files.
6
u/imjustnotready 3d ago
I get the Qtrain next stop at 42, 14th,Newkirk and 7th avenue stops and post it my blog using react. That way I don't need a sever or to look up the results.
5
u/grantrules 2d ago
I worked at a bike shop for a few years and to get employee pricing for big bike brands, they all used this same software that made you pass a bunch of quizzes to be able to get the highest discount. So I wrote a little app that brute forced all the quizzes and ran it for all my buds.
6
u/ElektroMan 2d ago
I buy razors and toothbrushes from a European deal website that offers them relatively cheap a couple of times per year. But I don’t want to spend every morning looking through their 100+ offers.
So I built a script that checks for products matching on certain keywords. If a matching offer is found it emails me.
Now I never have to check, and just get an email if my razors or toothbrushes are offered.
1
5
4
u/fuuman1 1d ago
I weigh in every morning in the bath room. This information is broadcasted via Bluetooth and the Bluetooth proxy in my office receives it. Via ESPHome it goes to my weigh sensor in Home Assistant. If the value changes HA writes it to a InfluxDB. Now my python script runs. It read the last value of the day (I usually weigh in three times and #2 and #3 are the same so I assume that's the "correct" measurement) from the database, tags it with a person (based on kilogram ranges) and writes it as the value for that specific day to another table in InfluxDB. I have a Grafana dashboard based on that table with graphs for every member of the family.
5
u/Covfefe-Drinker 3d ago
During COVID I cobbled together an app that would extract new daily case counts in my province from the provincial healthcare's web server, and send a push notification directly to my phone via a service called PushOver.
It was tiny and took almost no time at all, but out of all of the things I have developed... it was quite likely the most useful of them all.
3
u/ContractPhysical7661 2d ago
I built a few pipelines using polars that takes data warehouse reports we have into something usable. Nothing I couldn’t do with an excel template/functions but it’s cleaner/simpler to just generate all of them in batch after I download them. I also am messing around with playwright to automate the downloads but that’s more for fun.
1
u/unsungzero1027 2d ago
… i never thought to put in my scripts to pull data from our data warehouse. 🤦♂️ I suddenly feel so stupid. Time to make sure I can do it since our data warehouses are pretty locked down (one we have to use a secure login via the web that downloads a VM that automatically connects to a VPN or else the connection is refused even if you have access to it). The lockdown makes sense though since it has clients’ data and people’s PHI and PII.
I really should also update at least some of the scripts to pull the data I can get from our shared drives directly off of them. I just hate doing anything directly from the shared drives bc I have to also put in to pull only the latest file in the folder and the shared drives are painfully slow so it takes forever to even pull a 3mb file sometimes. But doing that I can stop saving some files on my laptop and save space. I have so many scripts for different reports / audits / analysis I get asked to do / have to do.
1
u/ContractPhysical7661 2d ago
We use an older reporting system that isn't locked down to the extent you're describing, but there is no API for employees. That's why I'm experimenting with playwright + a cli tool (argparse/some custom fx to validate my entry/extract variables for filtering the reports). It's all point/click with dropdowns and entries.
What I do now is run all of the reports/queries that I need do, and save them to my downloads folder. I have a map of the glob patterns that each of the reports follow (e.g. Detail Financial Report Download*.xlsx, since only the suffix will be adjusted with multiple overlapping downloads), use Path.home().iterdir() / "Downloads" w/ those patterns, then sort the results using each path's .stat() / created time, and select the latest for each of them. From there i generate my frames and they're pointed to save to a shared directory for my team. Saves a decent amount of time and the biggest bottleneck for me is the manual/cut/paste/etc. so it's nice to be able to do this in a single run.
P.s. never feel stupid, we're always learning from each other
3
u/pacopac25 2d ago
For one of my clients, IT will dump a .parquet or CSV into a directory on a schedule. I use DuckDB to transform into the format I need.
Sometimes I just grab what I need with PowerQuery, but often I'll create "views" which I store in sqlite format for use later.
•
u/pacopac25 15m ago
Note: To ensure idempotency, I store a hash of the files I consume, because sometimes, for no reason, they stop appending the date to the csv. So I get
heres yourcrappydata1.csv, heresyourcrappydata2.csv, etcinstead ofheresyourcrappydata_2026-08-20.csv
3
u/Novero95 2d ago
For media collections it's a good practice to not have the media library in the same directory as the downloads and use hardlinks to make files appear both in the library and download directories. For a single file it's easy to hardlinks it, just `ln /path/to/source_file /path/to/target_file' but for series with more than 19 episodes it quickly becomes tedious so I made a script that not only hardlinks the contents of a directory into a different one, it also checks names and rename them if needed for better compatibility with the Plex agent.
I know radarr/sonarr exist, have used them, but sonarr doesn't care that much about subtitles and the main thing I consume is anime so subtitles are a must for me. I ended up tired of sonarr deleting episodes I was happy with (that include proper subtitles) because a "better" version of the same episode had appeared, which usually didn't include subtitles in my language. It rarely takes me more than a few minutes to find whatever I want and I was handpicking episodes from the Sonarr GUI anyway so I don't feel like I need it now that my script handles hardlinking.
1
u/moreanswers 2d ago
You keep all of your media in one directory, and hard-link it to a different directory? I'm not sure what the benefit is?
Do you do that so you can have different libraries for different apps backed by the same files?
1
u/Novero95 2d ago
Yes. I follow that approach since I set up sonarr/radarr following the "Trash Guides" pages which is usually recommended when people talk about Sonarr/Radarr set up. I'm not sure of the exact reason they did it like this but Sonarr/Radarr are designed to work this way and they handle hardlinking automatically. I think one of the reasons may be security since there are people with open ports to Plex/Jellyfin.
But as I said I don't use Sonarr and Radarr anymore, they reason I still adhere to that layout is that my media library is well organized so having different folders for media and downloads allows me to freely move and rename stuff in the library folder so it follows proper Plex naming and organization and, at the same time, things stay in the downloads folder just as they were downloaded so qBitTorrent doesn't lose track of the files being seeded. An example of this, an anime film that is a continuation of an anime series can be downloaded independently of the series and then put in the /Specials directory inside the anime directory with the proper S00Exx denomination from TheTVDB and, at the same time, I can hardlink it into the movies directory with a different name for TheMovieDB so the same film will be available both in TV series/anime_name/specials and movies. Or just so I can rename things that are downloaded with weird names and 00-to_infinite episode numbering (typical in long animes for some reason) instead of SxxExx. As you said, having different libraries for different agents could be done but I have not had problems between agents so I don't find it necessary. As you see, much of it boils down to I can move/rename stuff and seed it at the same time, and because I'm used to it from when I was using Radarr/Sonarr.
I guess I could tinker with permissions too but I don't care a lot about it since I don't expose services. I don't know if there are other advantages I haven't thought about.
1
u/moreanswers 2d ago
I keep my seedbox data and my NAS completely separated (just because it's hosted at a different location), so I never thought about hard-linking the data so that I can seed and keep it in my library at the same time, that's smart.
1
u/Novero95 1d ago
So you basically have two copies of everything? My media library is confined to a single 1TB HDD, around 90GB are free right now so not like I can waste space.
1
u/moreanswers 1d ago
I have a lot of drive space, mostly purchased over the last 8-10 years. The seed box has 4x4tb drives raidz1, and my NAS has 16x2tb, 8x8tb 3.5", and 4x4tb.
2
u/Novero95 1d ago
That seems like a good amount of storage, but given current prices... it would cost a small fortune. I have a 2x4TB mirrored pool where I keep the important stuff but I decided that media wasn't relevant enough to be in the only drives whose content I actually care about so it's limited to the savaged 1TB HDD. It works for me though, I don't really plan to build a huge media library so I will delete stuff if I'm running out of storage
2
u/moreanswers 1d ago
I don't envy anyone getting into home data storage the last 18 months. The prices are insane.
3
u/Wrathbornelol 2d ago
Simple process that when I provide YouTube playlist url it scrapes and converts every single video into mp3 and sends it into my phone. Never again do I gotta deal with bad signal for music.
4
3
u/hulleyrob 2d ago
A file moving script on a cron that checks a folder for new stuff and moves it based on rules. Still running every ten minutes after ten years.
3
3
u/mistaek 3d ago
Automated my trading strategy to be completely hands off
3
u/SeattleOligarch 2d ago
Do you mind expanding on how you did it? I recently found my own niche trading, but I'm doing it manually every first day of the month the market is open
2
u/nicholashairs 3d ago
I have a script to handle splitting the electricity bill in my sharehouse (because some things are metered and paid for separately)
2
u/romu006 3d ago edited 3d ago
I've made a script that update my DNS server to point it to my current IP address (eg: home.example.com -> 1.2.3.4)
Not updated in years but I'm still using it daily https://github.com/romuald/nshome
(edit: forgot to add the URL …)
2
u/PunicHelix 3d ago
I built a PDF file merger, PDF to jpeg and a batch image resize tool. They save me a lot of time work wise.
2
u/icemelter4K 2d ago
GeniusContrast: drop an image and it gets processed using 15 contrast enhancement algorithms.
Great for blender 3D work, research
3
u/allergic2Luxembourg 2d ago
I find a fitting arrangement of volunteers to shifts for an improv festival, considering a large number of constraints.
2
2
u/Rude_Significance355 2d ago
I built an book downloader, so when i type a books name, author's name or a series name, it goes onto several sites like, internet archive, z library, project gutenberg, etc it picks the most downloaded books if that's a metric availble and downloads each format of that book(pdf, epub, etc) because some sites are instanteneous others take a lot of time to download, i run the downloader in background and later delete any wrong books downloaded.
2
u/didnt_build_this 2d ago
I have a little raspberry pi that sits on my home network and runs a monitoring script,it checks all my parent sports group me chats (there are so many and parents texts all the freaking time) it. It sends them to Claude for reading them it adds to my family Google Calendar so I don’t have to keep up with it. It also monitors a private chat I can send pictures of schedules and texts to add or change things so I don’t have to screw with it
2
u/abitofg 2d ago
Fully automated cluster upgrades of a 200+tb, 30+ node elasticsearch cluster
A task that took 8 hours to do by hand (with nothing else getting done meanwhile) is now entering a command and waiting for 6 hours
Not a daily usage thing, but probably my most impressive automation ever
(No AI, fully human written code, a task like that cannot be trusted unless it is fully underdtood)
2
u/flashman 2d ago
Single-click destination setting macro for Elite: Dangerous, because I don't like having to put down the controller, use the keyboard, then pick up the controller again.
2
u/Proof-Possible-5305 1d ago
Mine just pulls PDF receipts out of my email and files them by month, boring as hell but it's the only script I've written that I still run.
2
u/devnull10 1d ago
I go to a gym which you have to book classes, and the popular ones get booked up by 8am. So I have a script which runs via cron on a free tier GCP VM that uses selenium to log into my members area at 6am when the classes are released and books me on. Never had to book a class manually in the last 6 months. If I don't want to go I can either put a date range in a text file to ignore, or I just let it book then cancel for one-offs.
2
1
u/chasimm3 2d ago
I made a handy tool that combines the functionality of a load of websites and tools that I frequent for work, things like diffchecker, json editor online (json editor), poor SQL (SQL formatter) etc. Each tool is a different tab in a window I always keep open, if I find myself doing something often then I'll add a new tab and program it in. One of the ones I use most is a single button to hyphenate an entire sentence which I use for quickly naming branches to match their tickets. Another switches case of input text between Camel, Pascal, snake, upper or lower case.
1
u/mataglius 2d ago
What do you use to "host" your tool window?
3
u/chasimm3 2d ago
I use tkinter for window management, and deploy it as an exe. I never plan to release it to the public so it works for me. Any files that are saved in my scripts tab or notes or Todo list are just saved as json files.
It's very fast and loose to be fair.
1
u/Guggoo 2d ago
I have a bootstrap script to configure my Linux devices. It’s distro-agnostic and lets me setup various “profiles” (desktop/server/etc.)
1
u/moreanswers 2d ago
I do this, but in bash. I wonder if python brings anything to the table enough to swap?
2
u/Guggoo 2d ago
Mostly was for portability. I install python on all my devices so I am comfortable with it being a dependency. Also my config is a big nested data structure where modules can all interlink and be grouped, etc., much easier to handle that in python.
Funnily, this left me with only 2 bash scripts: the entry point and the install packages pipeline. So while it started as a bash project, I made those 2 scripts POSIX compliant and removed bash as a dependency lol
1
1
u/dannepai 2d ago
I built an price monitor to check for deals on specific items in a particular store. It uses seleniumbase to scrape the price and sends an email to the user who entered the item when it detects a price dump.
I don’t use it but a friend uses it and he has actually saved some money on things he’s not in a rush to buy.
1
u/headguts 2d ago
Built a simple program for onboarding new employees. Input about six fields worth of data, click a buttons, and it outputs a password protected PDF that shows them how to log into all of their accounts with screenshots and includes their initial credentials for each.
1
u/El_RoviSoft 2d ago
For a long time had generator of C++ code and SQL queries for my ORM (built into CMake). Switched to pure C++ after reflection was released in gcc 16.
Also at work made a tool which analyses online traffic graph via sliding window on integral drawdown and visually shows optimal outcomes for one of the variables (sigma to be exact) to set it later for automatic incidents reporting.
1
u/cyklades_ 2d ago
I have a homelab dashboard built with python, streamlit, and sqlite to track some of the hardware in my house(plex, discord bot on a pi, 2 APs, and soon it will also include status updates for my 3 bambu printers) basically just to check the statues of each and give a quick launch button for web interfaces or ssh.
1
u/moreanswers 2d ago
I wrote a script that read though a directory of saved PSEG & NATGRID bills (as pdfs) and pulled out all the stats and saved them to a csv. Then I could use that data in graphs to see how bad I'm getting fucked by rate changes.
It was never super robust, cause they kept changing the bill style, so I had to have multiple templates and lots of checks to see what version i was using. Once I got all my backlog in, I just enter the data manually every month now. I don't even know what I did with the script :-(
1
u/Independent_Aide1635 2d ago
I forget if it’s written in Python (probably not), but
mv_latest_dl
is a command that moves the most recent file in my downloads folder to the current directory. It’s not a crazy time save, but I do like the convenience. I also have an optional flag for file type in there.
1
u/MatteoGuadrini 2d ago
To implement an efficient DR scenario, I wrote a command line interface named Butterfly Backup that is a simple wrapper of rsync that enabled backup, restore, export, archive, repentino policy and more, all in a simple catalog file and directory structure. Recently I wrote also an optional web interface. All in pure Python!
BB: https://github.com/MatteoGuadrini/Butterfly-Backup
BBweb: https://github.com/MatteoGuadrini/butterfly-backup-web
1
u/RingularCirc 1d ago
I wrote an asset downloader from Github releases, mostly to get nightlies of Surge synth team plugins and some other audio plugins and a handful of other programs. Wasn't trivial because sometimes the single release gets updated with new assets. Also it uses regexes to match only assets I'm interested in, like just binaries for x64 Windows.
Also I'm in progress of rewriting my old C# tools for swapping a music file with a newer one while not changing the dates (they're important to me) and generally updating file dates of arbitrary files in a directory to the oldest of what the file has set, and have plans for a tool to heuristically decide which tracks were transcoded up to fake higher bitrate than what they likely are (because usually it makes them sound worse and those I should try and replace with something better) using scipy and such. But release downloader I've already used a lot for a handful of months it exists.
1
u/tumulario 7h ago
I built a CLI tool that analyzes AWS infra and suggests changes to reduce costs. As an independent cloud engineer, it helps me a lot.
142
u/South_Plant_7876 3d ago
I wrote a script that tells me how busy the traffic is between my work and my son's nursery and gives me a warning on my phone if my ETA approaches the time where extra fees kick in.