Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以检查自上次打开程序以来已经过了多少天——Python_Python_Python 3.x_Datetime - Fatal编程技术网

有没有一种方法可以检查自上次打开程序以来已经过了多少天——Python

有没有一种方法可以检查自上次打开程序以来已经过了多少天——Python,python,python-3.x,datetime,Python,Python 3.x,Datetime,Python中有没有一种方法可以保存程序打开的日期,然后检查它是何时打开的,以及从那以后有多少天 例如,假设我在2018年5月7日运行该程序,然后在2018年5月14日再次运行该程序,有没有办法告诉我7天已经过去,并将该天数分配给一个变量?编辑:下面是一个开箱即用的版本: import configparser from datetime import datetime, timedelta config = configparser.ConfigParser() config.read('

Python中有没有一种方法可以保存程序打开的日期,然后检查它是何时打开的,以及从那以后有多少天


例如,假设我在2018年5月7日运行该程序,然后在2018年5月14日再次运行该程序,有没有办法告诉我7天已经过去,并将该天数分配给一个变量?

编辑:下面是一个开箱即用的版本:

import configparser
from datetime import datetime, timedelta

config = configparser.ConfigParser()

config.read('dates.ini')
try:
    last = (datetime.strptime(config['Dates']['last'], '%Y-%m-%d %H:%M:%S.%f'))
except KeyError:
    last = datetime.today()

cfgfile = open("./dates.ini",'w')
try:
    config.add_section('Dates')
except configparser.DuplicateSectionError:
    pass
config.set('Dates','last',str(datetime.today()))
config.write(cfgfile)
cfgfile.close()

print((last - datetime.today()).days)

在运行该程序之前,您可以查看上次访问该文件的时间,但当您启动该程序时,为时已晚,因为您再次访问了该文件。但是你可以在完成时将当前日期写入一个文件,然后在再次运行时查看该文件,除非用户做了一些愚蠢的事情。非常简单。将脚本运行的最新日期写入外部文本文件,在第二次运行脚本时读取该日期,并将该日期与当前日期进行比较。只需完全按照您的要求执行即可--
1
保存日期(其中包含两个子问题
a
获取日期和
b
保存到文件),和
2
检查数据(其中再次包含
a
读取文件
b
获取当前日期
c
查找差异)。总之,可能太宽泛了。如果程序运行了几天,最后一次完成时可能会更有趣。可能,尽管问题确实指定了“何时打开”。但要在退出时执行某些操作,我假设您只需要这样的操作:
import-atexit
atexit.register(myfunction)
-但我从未使用过
atexit
,所以我不太确定。dates.ini中会出现什么?如果我只是启动它,它会出现一个“日期”的关键错误是的,你是对的-我没听清楚。我将编辑我的答案。我不在家测试它,但这应该可以解决它。好吧,它现在可以工作了,但它返回的值是负值,它减去了最终值的1。因此,如果我将dates.ini中的日期更改为7天前,程序将输出数字-8,而不是正7。我对python非常陌生,这就是为什么我自己无法找出问题所在