|
#coding:utf-8
#导入相应模块
import csv,xlwt,sys,os,fnmatch,xlrd
from xlutils.copy import copy
#对xls文件中的绝对值数据求最大值并列表
def max_excel(excel):
rb1=xlrd.open_workbook(excel)
#sheet0=rb1.sheets()[1]
wb1=copy(rb1)
#sheet页通过sheet名称得到的才能获取行数和列数,但是不能进行写操作,通过下标获得的sheet可以进行写操作,但是不能获得行数和列数
sheet0=rb1.sheet_by_name("Absolute")
sheet3=wb1.get_sheet(2)
nrows1=sheet0.nrows
ncols1=sheet0.ncols
for k in range(0,ncols1,):
sheet3.write(0,k,u'炸点%d' %(k+1))
cols = sheet0.col_values(k)
cmax=max(cols[1:])
sheet3.write(1,k, cmax)
wb1.save(excel)
#对xls文件中的data数据求绝对值
def abs_excel(excel):
#print "3"
rb=xlrd.open_workbook(excel)
#sheet=rb.sheets()[0]
wb=copy(rb)
sheet = rb.sheet_by_name("data")
#print sheet
sheet2=wb.get_sheet(1)
nrows=sheet.nrows
ncols=sheet.ncols
for i in range(nrows):
for j in range(ncols):
w=sheet.cell(i,j).value
if (i==0):
sheet2.write(i,j,w)
else:
v = float(w)
sheet2.write(i,j,abs(v))
wb.save(excel)
max_excel(excel)
#另存为xls文件
def ex_file(mycsvfile):
csvfile = open(mycsvfile,"rb")
#csvfile = open("test.csv","rb")
#新建excel文件
myexcel = xlwt.Workbook()
#新建sheet页
mysheet1= myexcel.add_sheet("data")
mysheet2= myexcel.add_sheet("Absolute")
mysheet3= myexcel.add_sheet("MAX")
#获取csv的文件名
portion = os.path.splitext(mycsvfile)
#读取csv中文件信息
reader = csv.reader(csvfile,dialect='excel')
l = 0
#通过循环获取单行信息
for line in reader:
r = 0
#通过双重循环获取单个单元信息
for i in line:
#通过双重循环写入excel表格
mysheet1.write(l,r,i)
r+=1
l+=1
myexcel.save(portion[0]+".xls")
excel = portion[0]+".xls"
#print portion[0]+".xls"
abs_excel(excel)
def iterfindfiles(path, fnexp):
for root, dirs, files in os.walk(path):
for filename in fnmatch.filter(files, fnexp):
yield os.path.join(root, filename)
#批量处理
if __name__=="__main__":
mypath=raw_input("Please enter a path:")
myfnexp='*.csv'
#print 1
for filename in iterfindfiles(mypath,myfnexp):
#print filename
ex_file(filename)
#abs_excel(filename)
#max_excel(filename)
raw_input ('please enter to exit')
最后可以通过 python pyinstaller --console --onefile 绝对路径\py文件.py 命令生产成对应的exe文件。
|
|
|