检测程序当天运行次数

查看 90|回复 9
作者:wapjsx   
在工作中刚好需要用到这个功能,故写了一个。
注:运行本程序后,自动在 当前运行目录生成“aa_logdate.txt”文件,
用来记录日期及运行次数。
第一次发贴,若有不妥或更好的建议,请批评指正
[Python] 纯文本查看 复制代码import time
import os
import sys
# 主要功能是为了检测程序当天运行的次数。
def process_count():
    mytimedict = {'1':'', '2': 0}  # 1 存储程序运行的时间,如:20230912  2 存储运行程序的次数
    myfilename =  os.path.join(os.path.split(os.path.realpath(sys.argv[0]))[0], '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()

楷体, 程序

Raohz520   

直接写在本地上实际上也不太好,建议使用sqlite,就是麻烦点。当然这个东西再改一改就可以全局检测每个应用的启动次数 、启动时间等
wapjsx
OP
  


xiejuelianai 发表于 2023-9-12 19:39
直接写入到注册表里面不香?万一别人删了那文本呢,那数据不清零了??

文件只是存储两个数据:日期与运行次数。
这个文件被删除了,会自动生成,且也表示当天第一次运行。
LuckyClover   

感谢表哥分享
xiejuelianai   

直接写入到注册表里面不香?万一别人删了那文本呢,那数据不清零了??
wzbAwxl   

感谢师傅分享
LeonSmith123   

主程序中调用process_count()后面,是不是需要跟着其他功能函数的调用啊。不然好像有点呆
wapjsx
OP
  


LeonSmith123 发表于 2023-9-12 19:57
主程序中调用process_count()后面,是不是需要跟着其他功能函数的调用啊。不然好像有点呆

是的!  这只是一个小技巧而已; 需要配合其他的代码来实现更多的功能。
moruye   

感谢分享,确实很有意思
redfieldw   

python脚本确实用途广泛
您需要登录后才可以回帖 登录 | 立即注册

返回顶部