前言
好久没有写点东西了,突发奇想把工作中每日需要发送的日报使用python完成,就不需要每天都重复相似的工作N遍。工作日报需要从多个csv格式,整合为通一个excel的不同sheet,并对部分sheet进行数据透视汇总,并存储到当前日报文件中
构思过程
- 读取目录下所有文件 ,使用os模块os.walk获取;
- 读取CSV文件并保存到excel,使用pandas模块的read_csv与to_excel完成
- 数据透视汇总,使用pandas中的pivot_table完成
- 不同服务器上使用目录不同,使用configparser模块在当前目录生成默认配置文件
- 了解每日大致信息,使用tkinter模块,在窗体输出简报
- 代码打包成exe,使用pyinstaller将代码打包exe使用
详细代码
import pandas as pd
# import datetime
import os
import configparser
# import time
import tkinter
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
return files #当前路径下所有非目录子文件
def config_parser(cfgpr):
#如果没有配置文件则自动生成
config = configparser.ConfigParser()
if not os.path.exists(cfgpr):
config['Sys']={
}
config['Sys']['base_dir'] = r'python'
config['Sys']['date'] = '200520'
# config['Sys']['db_path']= '${base_dir}/${date}'
with open (cfgpr,'w') as f:
config.write(f)
return 1
try:
config_parser('config.ini')
config = configparser.ConfigParser()
config.read('config.ini') #读取配置文件,并提取需要的信息
date = config['Sys']['date']
filepath = config['Sys']['base_dir']
daliypath = os.path.join(filepath,date) #将配置文件中base_dir与date组合成新路径
os.chdir(daliypath) #切换至配置文件中配置‘base_dir+date’的目录
daliy_file = '调度日报汇总_'+date+'.xlsx' #定义每日日报xlsx名称
path_daliyfile = os.path