检测程序当天运行次数
在工作中刚好需要用到这个功能,故写了一个。注:运行本程序后,自动在 当前运行目录生成“aa_logdate.txt”文件,
用来记录日期及运行次数。
第一次发贴,若有不妥或更好的建议,请批评指正!
import time
import os
import sys
# 主要功能是为了检测程序当天运行的次数。
def process_count():
mytimedict = {'1':'', '2': 0}# 1 存储程序运行的时间,如:202309122 存储运行程序的次数
myfilename =os.path.join(os.path.split(os.path.realpath(sys.argv)), 'aa_logdate.txt')
# 当前运行目录,生成文件名
mydate = time.strftime('%Y%m%d', time.localtime())
# 返回字符型日期,如:20230912
if os.path.exists(myfilename): # 如何文件存在
with open(myfilename,'r+') as myf:
temp_txt = myf.read()
temp_dict = eval(temp_txt)
# 以上3行,从文件中获取内容,并按内容转换为字典
if temp_dict.get('1') == mydate:
# 文件中的字典中的“1”与当前时间相比较。如果相同,表示今天不是第一次运行。
temp_dict['2'] = temp_dict.get('2') + 1
with open(myfilename,'w+') as myf:
myf.write(str(temp_dict))
# 以上3行,将字典“2”的值在原来的基础上加1,并写入到文件中保存
print('本程序今天系第{}次运行。'.format(temp_dict.get('2')))
return temp_dict.get('2') # 返回字典中“2”的值
else:# 下面表示 今天系第一次运行;故新生成字典并写入文件存储
mytimedict['1'] = mydate
mytimedict['2'] = 1
with open(myfilename,'w+') as myf:
myf.write(str(mytimedict))
print('本程序今天系第1次运行。')
return 1
else:
# 文件不存在;即 表示程序从来都没有运行过;故新生成字典并写入文件存储
mytimedict['1'] = mydate
mytimedict['2'] = 1
with open(myfilename,'w+') as myf:
myf.write(str(mytimedict))
print('本程序今天系第1次运行。')
return 1
if __name__ == '__main__':
process_count() 直接写在本地上实际上也不太好,建议使用sqlite,就是麻烦点。当然这个东西再改一改就可以全局检测每个应用的启动次数 、启动时间等 xiejuelianai 发表于 2023-9-12 19:39
直接写入到注册表里面不香?万一别人删了那文本呢,那数据不清零了??
文件只是存储两个数据:日期与运行次数。
这个文件被删除了,会自动生成,且也表示当天第一次运行。 感谢表哥分享 直接写入到注册表里面不香?万一别人删了那文本呢,那数据不清零了?? 感谢师傅分享 主程序中调用process_count()后面,是不是需要跟着其他功能函数的调用啊。不然好像有点呆 LeonSmith123 发表于 2023-9-12 19:57
主程序中调用process_count()后面,是不是需要跟着其他功能函数的调用啊。不然好像有点呆
是的!这只是一个小技巧而已; 需要配合其他的代码来实现更多的功能。 python脚本确实用途广泛
页:
[1]
2