python 操作Excel表格,解压zip包,压缩zip包,目录遍历
【腾讯云】亏本大甩卖,服务器4核16G 1年370元(带宽12M,系统盘120GB SSD盘,月流量2000GB)!!!!!!
云产品 配置 价格
服务器 1核2G,带宽5M,系统盘50GB SSD盘,月流量500GB 38元/年
MySQL 1核1G 19元/年
服务器 16核32G,带宽18M,系统盘250GB SSD盘,月流量5000GB 1197元/年
点我进入腾讯云,查看更多详情

 

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)[1]==".xlsx"):
                global fileName
                fileName=i
            elif(os.path.splitext(i)[1]==".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("|")[:2]
  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[-1]
  newline="|".join(account)+"|"+"|".join(lastline.split("|")[2:])
  file = open(file_name, w+)
  for i in lines[:-1]:
    file.write(i)
  file.write(newline)
  file.close()
  #f = zipfile.ZipFile(os.path.splitext(file_name)[0]+.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[-1]=="Gender"):
            for k in temp:
                if(k[0]=="RESULT"):
                    for l in k:
                        i.append(l)
                else:
                    pass
        elif((i[-1]=="P")or(i[-1]=="L")):
            for k in temp:
                if(k[0]=="PASS"):
                    for l in k:
                        i.append(l)
                else:
                    pass
        else:
            for j in range(7):
                i.append(None)
    for i in range(0,len(rowlists)):
        for j in range(0, len(rowlists[i])):
            sheet.cell(row=i+1, column=j+1, 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, "	", end="")
        rowlist.append(cc)
        #print("
")
    return rowlist
def delfold(cur_dir):
    file_list=os.listdir(cur_dir)
    for i in file_list:
        if(os.path.splitext(i)[1]!=".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=".	mpcommon.xlsx"
#des
despath=fileName
rowlists=read07Excel(absp)
temp=read07Excel(tempath)
write07Excel(despath)
delfold(os.getcwd()+"file")

推荐文章

Python邮箱编码错误

Python邮箱编码错误

推荐文章

泛型和集合锁定

泛型和集合锁定

推荐文章

使用string[]执行contains的最快方法

使用string[]执行contains的最快方法

推荐文章

Image Accessibility 101: What is it and why is it important?

Image Accessibility 101: What is it and why is it important?

推荐文章

为什么安全要求不鼓励使用人工智能?

为什么安全要求不鼓励使用人工智能?

推荐文章

在C中使用字节数组#

在C中使用字节数组#

推荐文章

MySQL数据库的高级操作

MySQL数据库的高级操作

推荐文章

运动会数据库设计(MySQL)

运动会数据库设计(MySQL)

推荐文章

在UITableViewCell中具有UITextField

在UITableViewCell中具有UITextField

推荐文章

Let's build a game with Tensorflow.js in 10 minutes ????

Let's build a game with Tensorflow.js in 10 minutes ????

推荐文章

你在日志上写了什么?

你在日志上写了什么?

推荐文章

我应该在MySQL中使用datetime还是timestamp数据类型?

我应该在MySQL中使用datetime还是timestamp数据类型?

推荐文章

数据库创建表

数据库创建表

推荐文章

字符串搜索:EclipseIDE有没有一个现代的“查找”用户界面(LaFirefox)

字符串搜索:EclipseIDE有没有一个现代的“查找”用户界面(LaFirefox)

推荐文章

有人用过荨麻吗?

有人用过荨麻吗?

推荐文章

A Fool-Proof Way to Keep Your Fork Caught Up in Git

A Fool-Proof Way to Keep Your Fork Caught Up in Git