python保存为excel文件_python遍历excel文件并保存为excel文件

#!/usr/bin/python

# -*-coding: utf-8 -*-

import xlrd

import xlwt

import os

import numpy as np

filePath = u'E:\\one_year\\合并数据\\冷塔'

fileDir = os.listdir(filePath)

#files = []

#fileSavePath = u'E:\\one_year\\合并数据\\冷冻水泵\\5'

biaotou1 = ['湿球温度(℃)A', '1#冷却塔冷却水进水温度(℃)', '1#冷却塔1#风机变频反馈', '1#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','1#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-1']

biaotou2 = ['湿球温度(℃)A', '2#冷却塔冷却水进水温度(℃)', '2#冷却塔1#风机变频反馈', '2#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','2#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-2']

biaotou3 = ['湿球温度(℃)A', '3#冷却塔冷却水进水温度(℃)', '3#冷却塔1#风机变频反馈', '3#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','3#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-3']

biaotou4 = ['湿球温度(℃)A', '4#冷却塔冷却水进水温度(℃)', '4#冷却塔1#风机变频反馈', '4#冷却塔2#风机变频反馈', '1#板换冷却水水流量(M3/H)', '2#板换冷却侧水流量(M3/H)','3#板换冷却水水流量(M3/H)', '4#板换冷却侧水流量(M3/H)','1#冷水机组冷却水流量(M3/H)', '2#冷水机组冷却水流量(M3/H)', '3#冷水机组冷却水流量(M3/H)', '4#冷水机组冷却水流量(M3/H)','4#冷却塔冷却水出水温度(℃)', '冷却塔组CT-R-4']

biaotou = []

biaotou.append(biaotou1)

biaotou.append(biaotou2)

biaotou.append(biaotou3)

biaotou.append(biaotou4)

for filepath in fileDir: ###解决中文乱码问题

objectFile = filePath + r'\\' + filepath

list1 = []

list2 = []

list3 = []

list4 = []

for fileName in os.listdir(objectFile):

excelfile = objectFile + r'\\' + fileName

print(fileName)

if int(fileName[6:7]) == 1:

list1.append(excelfile)

if int(fileName[6:7]) == 2:

list2.append(excelfile)

if int(fileName[6:7]) == 3:

list3.append(excelfile)

if int(fileName[6:7]) == 4:

list4.append(excelfile)

listAll = []

listAll.append(list1)

listAll.append(list2)

listAll.append(list3)

listAll.append(list4)

tower_num = 0

for lis in listAll:

tower_num = 1 + tower_num

matrix = [None] * len(lis)

for i in range(len(lis)):

fname = lis[i]

print(fname)

excelFile = xlrd.open_workbook(fname)

try:

data = excelFile.sheet_by_name("MySheet")

except:

print("在文件%s中没有找到sheet1,读取文件数据失败,要不你换换表格的名字?" % fname)

nrows = data.nrows

ncols = data.ncols

matrix[i] = [0] * (nrows - 1)

for m in range(nrows - 1):

matrix[i][m] = ["0"] * ncols

flag = 0

for j in range(1, nrows):

for k in range(0, ncols):

# print(str(data.cell(j, k).value))

if (str(data.cell(j, k).value) == '\\N')or(str(data.cell(j, k).value) == (str(0.0))):

flag = flag + 1

break

if (str(data.cell(j, ncols - 1).value) == '\\N') or (float(data.cell(j, ncols - 1).value) < 2.0):

flag = flag + 1

break

if (str(data.cell(j, 2).value) == '\\N' or str(data.cell(j, 3).value) == '\\N'):

flag = flag + 1

break

if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) > 50.0)and (float(data.cell(j, ncols - 1).value) < 12.0):

flag = flag + 1

break

if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) < 10.0) and (float(data.cell(j, ncols - 1).value) > 3.0):

flag = flag + 1

break

if ((float(data.cell(j, 2).value) + float(data.cell(j, 3).value)) < 50.0) and (float(data.cell(j, ncols - 1).value) < 5.0):

flag = flag + 1

break

matrix[i][j - 1 - flag][k] = data.cell(j, k).value

matrix[i] = np.delete(matrix[i], np.s_[(nrows - flag - 1):nrows], axis=0)

#print(matrix)

fileExcel = xlwt.Workbook()

sheet = fileExcel.add_sheet("MySheet")

# 下面是把表头写上

for i in range(0, len(biaotou[tower_num - 1])):

sheet.write(0, i, biaotou[tower_num - 1][i])

# 求和前面的文件一共写了多少行

zh = 1

for i in range(len(lis)):

for j in range(len(matrix[i])):

for k in range(len(matrix[i][j])):

sheet.write(zh, k, matrix[i][j][k])

zh = zh + 1

print("我已经将%d个文件合并成1个文件")

fileSavePath = os.path.dirname(objectFile) + r'\\' +'0_'+ filepath + '月'

print(fileSavePath + r'\\'+ str(tower_num) + "#lengta.xlsx")

if not os.path.exists(fileSavePath): ###创建月份文件夹

os.makedirs(fileSavePath)

fileExcel.save(fileSavePath + r'\\'+ str(tower_num) + "#lengta.xlsx")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值