標籤:python
暑假開始實習,為了記錄自己每月的出勤情況,寫了一個小程式。
原理很簡單,就是 python 對文字檔和日期的處理。
main.py 程式碼如下:
# -*- coding:utf-8 -*-# author:青天訣import codecsimport datetimeimport 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-22def 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\recordstart pythonw main.pyexit
然後將auto.bat發送捷徑到案頭,然後將捷徑添加到開機啟動目錄
添加時,需要找到啟動的目錄,對著啟動 右擊 》屬性 》常規,位置那裡就是啟動所在目錄,開啟後,將auto.bat的捷徑複製到目錄下,就會在開機時自動運行這個bat檔案了。
添加捷徑後,啟動裡就會出現我們複製進去的捷徑,如:
PS:main.py 程式添加了判斷,每天只會簽到一次,就算電腦每天重啟幾次,也不會被重複簽到的,放心使用了。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
python 工作自動簽到記錄