python读取某电子打卡机实时数据,读取目标文件夹最新文件并匹配特定字典,替换人员代码为姓名,写入新的文本文件
注:代码引入时间模块是因为该虹膜打卡机按年月日文件夹存储,该日文件夹数据两分钟生成一个csv我们需要读取最新时间的csv(文件命名无规律),所以循环列表得到最新文件,在进行数据转换和读取,由于数据的机密性不方便展示,大家知道大概原理和实施步骤即可
coding:utf-8
import csv
import datetime
import osaa = datetime.datet ime.now().strftime('%Y-%m-%d')
years = datetime.datetime.now().strftime('%Y')
month = datetime.datetime.now().strftime('%m')
days = datetime.datetime.now().strftime('%d')print(aa,aa1,aa2,aa3)
filePath= './2019/10/18'filePath_one = "./HMDTP/1557397261314/1565161383166/"+years+"/"+month+"/"+days
file_list = os.listdir(filePath)
file_name = file_list[-1]
cc = "./HMDTP/1557397261314/1565161383166/"+years+"/"+month+"/"+days+"/"+file_name
print(cc)dict_code = dict()
with open("hg.csv", 'r', encoding="utf-8") as f:reader = csv.DictReader(f)for row in reader:WORKERCODE = row['WORKERCODE']WORKERNAME = row['WORKERNAME']dict_code[WORKERCODE]=WORKERNAME
print(dict_code)
keys_list = []
for key in dict_code:keys_list.append(key)aa = []
csv_file = csv.reader(open('./2019.csv', 'r'))
for i in csv_file:i.pop(0)i.pop(2)i.pop(1)i.pop(5)i.pop(4)i.pop(5)i.pop(4)i.pop(4)aa.append(i)
aa.pop(0)print(aa)
f = open("data1.txt", "w")
zhuangtai = [{'1': '已入井'}, {'2': '已出井'}, {'0': '未入井'}]
for ii in aa:if ii[2] == '1':ii[2] = '已入井'elif ii[2] == '2':ii[2] = '已出井'elif ii[2] == '0':ii[2] = '未入井'for key in keys_list:if ii[0] == key:ii[0] = dict_code.get(key)del (ii[-1])for list_1 in ii:f.write(list_1 + ',')f.write('\n')f.close()