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. 限制ip ssh远程登录

    有时候为了服务器的安全考虑,我们可以在服务器上做限制,禁止其他ip地址连接服务器. 方法一:修改ssh配置文件 其实做这个操作很简单,只需要改/etc/ssh/sshd_config配置文件,再最后一 ...

  2. mysql 修改配置文件性能优化

    vim /etc/my.cnf 原配置文件 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # ...

  3. HDU_2888_Check Corners

    Check Corners Time Limit: 2000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  4. IoC COntainer Create Javabeans 可以通过读取beans.xml 文件来创建一个应用程序上下文对象 依赖反转

    Spring初学快速入门 - Spring教程™ https://www.yiibai.com/spring/spring-tutorial-for-beginners.html# pom <? ...

  5. NSString 属性为啥用copy 不用strong

     copy不能修改,strong可以修改,防止字符串被意外修改.demo: ——————————————————code 你要的 demo—————————————————— @property (n ...

  6. pmd代码安全扫描工具

    pmd是一款开源的代码扫描工具,这里对pmd做了一些修改,加了安全相关的插件.支持的代码文件类型:java.vue.js.xml 下载链接: https://files.cnblogs.com/fil ...

  7. Android中的Handler及它所引出的Looper、MessageQueue、Message

    0.引入 0.1.线程间通信的目的 首先,线程间通信要交流些什么呢? 解答这个问题要从为什么要有多线程开始,需要多线程的原因大概有这些 最早也最基本:有的任务需要大量的时间,但其实并不占用计算资源,比 ...

  8. 如何编写一个python项目

    https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397616003925a ...

  9. sql server学习路径地址

    联机丛书2005:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2005/ms130214(v=sql.90) 联 ...

  10. 整合最优雅SSM框架:SpringMVC + Spring + MyBatis 基础

    在写代码之前我们先了解一下这三个框架分别是干什么的? 相信大以前也看过不少这些概念,我这就用大白话来讲,如果之前有了解过可以跳过这一大段,直接看代码! SpringMVC:它用于web层,相当于con ...