import zipfile
import os,shutil
import openpyxl file_list_pos=""
fileName=""
zipfileName=""
def un_zip(file_name):
"""unzip zip file"""
zip_file = zipfile.ZipFile(file_name)
if os.path.isdir(file_name + "_files"):
pass
else:
os.mkdir(file_name + "_files")
for names in zip_file.namelist():
zip_file.extract(names,file_name + "_files/")
zip_file.close()
def cd_to_filelist(cur_dir):
file_list=os.listdir(cur_dir)
for i in file_list:
if(os.path.isdir(i)):
os.chdir(i)
cd_to_filelist(os.getcwd())
else:
if(os.path.splitext(i)[]==".xlsx"):
global fileName
fileName=i
elif(os.path.splitext(i)[]==".zip"):
global zipfileName
zipfileName=i
else:
pass
global file_list_pos
file_list_pos=os.getcwd()
def rewrite():
f=open("KONTRAK.txt","r")
secondline=f.readline()
secondline=f.readline()
account=secondline.split("|")[:]
os.chdir(current_dir)
f.close()
file_name="LAPORAN HASIL PEMERIKSAAN - J23_1 28886.txt"
f=open('tmp\\'+ file_name,"r")
lines = f.readlines()
lastline=lines[-]
newline="|".join(account)+"|"+"|".join(lastline.split("|")[:])
file = open(file_name, 'w+')
for i in lines[:-]:
file.write(i)
file.write(newline)
file.close()
#f = zipfile.ZipFile(os.path.splitext(file_name)[]+'.zip','w',zipfile.ZIP_STORED)
#f.write(file_name)
#f.close()
#os.remove(file_name)
def write07Excel(path):
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = 'Sheet1'
for i in rowlists:
if(i[-]=="Gender"):
for k in temp:
if(k[]=="RESULT"):
for l in k:
i.append(l)
else:
pass
elif((i[-]=="P")or(i[-]=="L")):
for k in temp:
if(k[]=="PASS"):
for l in k:
i.append(l)
else:
pass
else:
for j in range():
i.append(None)
for i in range(,len(rowlists)):
for j in range(, len(rowlists[i])):
sheet.cell(row=i+, column=j+, value=rowlists[i][j])
wb.save(path)
print("Done!")
def read07Excel(path):
wb = openpyxl.load_workbook(path)
sheet = wb['Sheet1']
rowlist=[]
for row in sheet.rows:
cc=[]
for cell in row:
cc.append(cell.value)
#print(cell.value, "\t", end="")
rowlist.append(cc)
#print("\n")
return rowlist
def delfold(cur_dir):
file_list=os.listdir(cur_dir)
for i in file_list:
if(os.path.splitext(i)[]!=".zip"):
shutil.rmtree(cur_dir+"\\"+i)
current_dir=os.getcwd()
os.chdir("file")
cd_to_filelist(os.getcwd())
un_zip(zipfileName)
cd_to_filelist(os.getcwd())
rewrite()
#src
absp=file_list_pos+"\\"+fileName
#temp
tempath=".\\tmp\\common.xlsx"
#des
despath=fileName
rowlists=read07Excel(absp)
temp=read07Excel(tempath)
write07Excel(despath)
delfold(os.getcwd()+"\\file")

python 操作Excel表格,解压zip包,压缩zip包,目录遍历的更多相关文章

  1. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

  2. python - 操作excel表格

    说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...

  3. 转载:python操作excel表格(xlrd/xlwt)

    python操作excel表格(xlrd/xlwt)   最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而 ...

  4. Python 利用Python操作excel表格之openyxl介绍Part2

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436) ## 绘图 c = LineChart()    ...

  5. Python 利用Python操作excel表格之openyxl介绍Part1

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...

  6. Python 利用Python操作excel表格之xlwt介绍

    利用Python操作excel表格之xlwt介绍   by:授客 QQ:1033553122 直接上代码   案例1 #!/usr/bin/env python # -*- coding:utf-8 ...

  7. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  8. Python操作excel表格

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...

  9. 28.python操作excel表格(xlrd/xlwt)

    python读excel——xlrd 这个过程有几个比较麻烦的问题,比如读取日期.读合并单元格内容.下面先看看基本的操作: 首先读一个excel文件,有两个sheet,测试用第二个sheet,shee ...

  10. Python操作Excel表格,xlwt模块的使用

    Python可以操作Excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的) 按照模块使用pip install xlwt 就行了,很常规的方式 直接进代码解析,本文源码 w ...

随机推荐

  1. Android软件开发之EditText 详解(八)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xys289187120.blog.51cto.com/3361352/65718 ...

  2. linux的ls命令输出结果的逐条解释

    转自:http://blog.csdn.net/god123209/article/details/7193485 ls 命令的含义是list显示当前目录中的文件名字.注意不加参数它显示除隐藏文件外的 ...

  3. 解读 Android TTS 语音合成播报

    随着从事 Android 开发年限增加,负责的工作项目也从应用层开发逐步过渡到 Android Framework 层开发.虽然一开始就知道 Android 知识体系的庞大,但是当你逐渐从 Appli ...

  4. Centos6与Centos7的区别

    前言 centos7与6之间最大的差别就是初始化技术的不同,7采用的初始化技术是Systemd,并行的运行方式,除了这一点之外,服务启动.开机启动文件.网络命令方面等等,都说6有所不同.让我们先来了解 ...

  5. Java面试题全集(上)

    2013年年底的时候,我看到了网上流传的一个叫做<Java面试题大全>的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对 ...

  6. Integer.valueof 和 Integer.parseInt

    System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); System.out.p ...

  7. 完全用nosql轻松打造千万级数据量的微博系统(转)

    原文:http://www.cnblogs.com/imxiu/p/3505213.html 其实微博是一个结构相对简单,但数据量却是很庞大的一种产品.标题所说的是千万级数据量 也并不是一千万条微博信 ...

  8. Linux eventfd分析

    2017-07-20 eventfd在linux中是一个较新的进程通信方式,和信号量等不同的是event不仅可以用于进程间的通信,还可以用户内核发信号给用户层的进程.eventfd在virtIO后端驱 ...

  9. android(十)smali

    Dalvik是google专门为Android操作系统设计的一个虚拟机,经过深度的优化.虽然Android上的程序是使用java来开发的,但是Dalvik和标准的java虚拟机JVM还是两回事. Da ...

  10. 205-react SyntheticEvent 事件

    参看地址:https://reactjs.org/docs/events.html