这个计算工时脚本,我之前都是 linux下运行,但是在windows下运行会失败,
后来修修改改,又好了,暂时把这两个脚本贴出来,以后再碰到这个问题具体定位时有帮助
windows
# coding=utf-8
import os, sys
import re
if __name__ == '__main__':
sum_time = 0
time_file = open('time.txt', 'r', encoding='utf-8')
for li in time_file :
if '小时' in li or '分钟' in li :
#if minute in li or hour in li :
#print(li)
this_time = str(li).split()
this_time = str(this_time[-1])
#this_time = this_time.encode()
#print(this_time)
if '小时' in this_time :
this_time = re.findall("\d+", this_time)
this_time = str(this_time[0])
int_time = int(str(this_time)) * 60
sum_time += int_time
print(str(int_time))
else :
this_time = re.findall("\d+", this_time)
this_time = str(this_time[0])
int_time = int(str(this_time))
sum_time += int_time
print(int_time)
sum_time = float(sum_time)
sum_minutes = 'sum minutes : ' + str(sum_time)
sum_hours = sum_time / 60
sum_hours = round(sum_hours, 2)
sum_hours = 'sum hours : ' + str(sum_hours)
print(sum_minutes)
print(sum_hours)
time_file.close()
linux
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
import re
if __name__ == '__main__':
sum_time = 0
time_file = open('time.txt', 'rb')
for li in time_file :
#li = str(li)
#minute = '\xe5\x88\x86\xe9\x92\x9f'
#hour = '\xe5\xb0\x8f\xe6\x97\xb6'
if '分钟' in li or '小时' in li :
#if minute in li or hour in li :
this_time = str(li).split()
this_time = str(this_time[-1])
if '小时' in this_time :
this_time = re.findall("\d+", this_time)
this_time = str(this_time[0])
int_time = int(str(this_time)) * 60
sum_time += int_time
print(str(int_time))
else :
this_time = re.findall("\d+", this_time)
this_time = str(this_time[0])
int_time = int(str(this_time))
sum_time += int_time
print(int_time)
sum_time = float(sum_time)
sum_minutes = 'sum minutes : ' + str(sum_time)
sum_hours = sum_time / 60
sum_hours = round(sum_hours, 2)
sum_hours = 'sum hours : ' + str(sum_hours)
print(sum_minutes)
print(sum_hours)
time_file.close()