1.问题一:定时任务问题
因为每天上午都要出一些关键性的报表,但是上午大家都来上班啦,在服务器上查数据,汇成表都会和其他同事占资源,会导致运行较慢,所以打算在半夜运行代码,下面介绍三种方式:
1.1 最简单
import time
def doTh():
print("嘎嘎")
for i in range(5):
doTh()
time.sleep(10)
1.2 较复杂
import datetime
import time
def doTh():
print(嘎嘎')
# 假装做这件事情需要一分钟
time.sleep(60)
def go(h=0, m=0):
'''h表示设定的小时,m为设定的分钟'''
while True:
# 判断是否达到设定时间,例如0:00
while True:
now = datetime.datetime.now()
# 到达设定时间,结束内循环
if now.hour==h and now.minute==m:
break
# 不到时间就等20秒之后再次检测
time.sleep(20)
# 做正事,一天做一次
doTh()
go()
1.3 复杂
相信这个网上也有很多介绍了,这里也就不多费口舌了
2.问题二:批量将txt文件转化成csv文件
#识别当前目录下的txt文件名
# -*- coding: utf-8 -*-
import os
import csv
def listdir(path, list_name,file_type): #传入存储的list
for file in os.listdir(path):
if os.path.splitext(file)[1] == file_type: #其中os.path.splitext()函数将路径拆分为文件名+扩展名
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
listdir(file_path, list_name)
else:
list_name.append(file_path)
接下来就是将这4个txt文件名获取到
万事具备,我们就可以开始转成csv格式了
for files in list_name:
de = os.getcwd()+'/'
files = files.replace(de,"").replace("20190222ls.txt","")
new_file = files+".csv"
with open(new_file,'w',newline="") as csvfile:
spamwriter = csv.writer(csvfile, dialect='excel')
file = files+"20190222ls.txt"
with open(file, 'rb') as filein:
count = 0
for line in filein:
try:
flag = str(line,encoding="utf-8")
line_list = flag.strip('\\N\n').split('\001')
spamwriter.writerow(line_list)
count = count + 1
except:
count = count + 1
print("第{}行出现报错,该行数值为{}".format(count,line_list))
。。。。。。。持续更新中