wapjsx 发表于 2023-9-12 17:18

检测程序当天运行次数

在工作中刚好需要用到这个功能,故写了一个。
注:运行本程序后,自动在 当前运行目录生成“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()

Raohz520 发表于 2023-9-12 18:08

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

wapjsx 发表于 2023-9-12 21:17

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

文件只是存储两个数据:日期与运行次数。

这个文件被删除了,会自动生成,且也表示当天第一次运行。

LuckyClover 发表于 2023-9-12 18:55

感谢表哥分享

xiejuelianai 发表于 2023-9-12 19:39

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

wzbAwxl 发表于 2023-9-12 19:44

感谢师傅分享

LeonSmith123 发表于 2023-9-12 19:57

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

wapjsx 发表于 2023-9-12 21:18

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

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

moruye 发表于 2023-9-12 21:19

redfieldw 发表于 2023-9-12 23:15

python脚本确实用途广泛
页: [1] 2
查看完整版本: 检测程序当天运行次数