Skip to content

Instantly share code, notes, and snippets.

@dmynerd78
Last active August 16, 2020 23:31
Show Gist options
  • Save dmynerd78/8a0118afdb3de0cf05544f7ae17e00fb to your computer and use it in GitHub Desktop.
Save dmynerd78/8a0118afdb3de0cf05544f7ae17e00fb to your computer and use it in GitHub Desktop.
A quick and dirty Python script that writes to a file how long it's been running. Useful for measuring laptop lifetime when on battery (which is what I used it for)
from time import sleep
from datetime import datetime
"""
To read back JSON file:
Datetime str format: %Y-%m-%d %H:%M:%S.%f
datetime.strptime(datetime_string, "%Y-%m-%d %H:%M:%S.%f")
"""
SLEEP_TIME = 3
def write_time(life_file):
start_time = datetime.now()
curr_time = start_time
time_data = {
"start": str(start_time),
"current": None,
"delta": None
}
while True:
prev_time = curr_time
curr_time = datetime.now()
delta = curr_time - start_time
time_data["current"] = str(curr_time)
time_data["delta"] = str(delta)
if (curr_time - prev_time).seconds > SLEEP_TIME * 1.5:
print(f"""\nABORTING! Skipped ahead more than {SLEEP_TIME} seconds\n
start: {start_time}
end: {prev_time}
delta: {prev_time - start_time}\n""")
input("Press enter to continue")
return
life_file.seek(0)
life_file.write(f"""{{
"start": "{time_data["start"]}",
"current": "{time_data["current"]}",
"delta": "{time_data["delta"]}"
}}""")
life_file.truncate()
life_file.flush()
print(time_data["delta"])
sleep(SLEEP_TIME)
def main():
life_file = open("battery_life.json", "w")
try:
write_time(life_file)
except KeyboardInterrupt:
return
finally:
life_file.close()
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment