背景1:
需要从十八份表格中删选出部分数据
解决方法:
将现有的18份表格汇总成一张总表,然后将这张总表的group列与标准group.xls文件对比,最后将匹配的数据记录到一张新表。
脚本:
import os.path
from xlwt import *
from xlrd import *
dir = input("输入文件路径\n")
all_file = []
for parent,folder,filename in os.walk(dir): #遍历路径里面的所有文件,返回的是元祖,parent是根
print ('paren模块t=,folder=,filename=',parent,folder,filename)
print ('文件总数:',len(filename))
for file,x in zip(filename,range(len(filename))): #zip将两个元祖构成一个新的元祖
file = os.path.join(parent,filename[x]) #file为该路径下的第x个文件
print( filename[x])
all_file.append(file)
if os.path.exists("result.xls"):
os.remove("result.xls")
w = xlrd.workbook()
row = 0;
ws = w.add_sheet('sheet1',cell_overwrite_ok=True) #cell....是为了可以让用户重复填写
for single_file_path in all_file:
data = open_workbook(single_file_path);
sheet = data.sheet_by_index(0)
if sheet.nrows >= 1:
for i in range(0,sheet.nrows):
list = sheet.row_values(i)
for col in range(0,len(list)):
ws.write(row,col,list[col])
row = row + 1;
else:
print("非法填写的表格名称:"+single_file_path)
w.save('17TMOP-T2-APL.xls')
模块:
1.os:https://www.runoob.com/python/os-walk.html