python 工作自动签到记录

暑假开始实习,为了记录自己每月的出勤情况,写了一个小程序。
原理很简单,就是 python 对文本文件和日期的处理。

main.py 程序代码如下:

# -*- coding:utf-8 -*-
# author:青天诀

import codecs
import datetime
import re

#读取文本文件中的签到记录
def readRecord(path):
    with open(path,'r+') as f:
        f=open(path,'r+')
        data=f.readline()  # 读取文件第一行,并判断第一行是否有隐藏的BOM_UTF8
        if data[:3]==codecs.BOM_UTF8:
                data=data[3:]
        print data.decode("utf-8")
        for data in f:
            print data.decode("utf-8")

#计算工作日期,和周几
def workDate(*time):
    if time:
        now=datetime.datetime.strptime(time[0],'%Y-%m-%d')
    else:
        now=datetime.datetime.now()
    week=now.weekday()
    weeks=("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
    now=str(now.strftime('%Y-%m-%d'))
    return (now,weeks[week])

#计算当前工作天数(id)
def workCount(file):
    count = 0
    for count, line in enumerate(file):
        pass
    count += 1
    return str(count)


def lastLine(file):
    lines=file.readlines()
    data=lines[len(lines)-1].decode('utf-8')
    ary=re.split(r'\s+',data)
    return ary[1]

#  写入文本文件
#  time格式为: 2015-7-22
def writeRecord(path,*time):
    with open(path,'a+') as f:
        count=workCount(f)
        if time:
            (mydate,week)=workDate(time[0])
        else:
            (mydate,week)=workDate()
        f.seek(0)
        if lastLine(f)!=mydate:
            f.write(count.ljust(12)+(mydate.encode('utf-8')).ljust(16)+week.ljust(16)+'true'+'\n')
            print u"签到完成,哈哈!"
        else:
            print u"请不要重复签到!!!"



writeRecord('record.txt')
readRecord('record.txt')

为了每天让程序自动完成签到,写了一个atuo.bat文件,运行main.py。


e:
cd E:\long\record
start pythonw main.py
exit

然后将auto.bat发送快捷方式到桌面,然后将快捷方式添加到开机启动目录

python 工作自动签到记录_第1张图片

添加时,需要找到启动的目录,对着启动 右击 》属性 》常规,位置那里就是启动所在目录,打开后,将auto.bat的快捷方式复制到目录下,就会在开机时自动运行这个bat文件了。

python 工作自动签到记录_第2张图片

添加快捷方式后,启动里就会出现我们复制进去的快捷方式,如下图:

python 工作自动签到记录_第3张图片

PS:main.py 程序添加了判断,每天只会签到一次,就算电脑每天重启几次,也不会被重复签到的,放心使用了。

你可能感兴趣的:(python)