Как сделать, чтобы при запуске программы показывалась дата последнего ее запуска?Можно определить дату при помощи модуля time
и сохранить в «Блокноте», а при запуске извлекать строку с датой. Может есть другие способы?
Думаю удобнее записав значение в файл. Работа с реестром будет довольно громоздкой, и возможно будет необходим запуск от имени администратора.
Вот вариант с записью в файл
import os, pickle, time tmp_file = "test.pic" if os.path.isfile(tmp_file): t = pickle.load(open(tmp_file, "rb")) print(t) else: print("Time not found") pickle.dump(str(time.time()), open(tmp_file, "wb"))
Для переносимости и чтобы проще отлаживать, можно в человекочитаемом формате сохранять время:
import datetime as DT print(DT.datetime.now(DT.timezone.utc)) # -> 2018-02-07 07:48:55.388757+00:00
Чтобы результат не зависел от текущей рабочей директории (чтобы из любой директории можно было программу запустить), следует полный путь указать к файлу со временем.
Чтобы в общепринятое место пользовательские данные писать, можно appdirs
модуль использовать :
#!/usr/bin/env python3 import datetime as DT from pathlib import Path import appdirs # $ pip install appdirs path = Path(appdirs.user_data_dir("Название программы", "Автор")) / 'last_run_time.txt' # read time of the last program run if available if path.exists(): last_run_time = DT.datetime.strptime(path.read_text(), '%Y-%m-%d %H:%M:%S.%f+00:00').replace(tzinfo=DT.timezone.utc) print(last_run_time.astimezone()) # display local time else: # first run path.parent.mkdir(parents=True, exist_ok=True) # update time now = DT.datetime.now(DT.timezone.utc) path.write_text(now.isoformat(' '))