测试修改前,先打包备份!
测试修改前,先打包备份!
测试修改前,先打包备份!
重要的事情说三遍
新手,网上东拼西凑了个脚本。
功能:批量搜索py脚本所在目录及子目录下的excel的xls文件,替换修改表格里内容。
[Python] 纯文本查看 复制代码
#!/usr/bin/python# -*- coding: utf-8 -*-# Date: 2022/01/08# testing System version: CentOS Linux release 7.8.2003 (Core)# Python version : 2.7.5 (default, Apr 2 2020, 13:16:51)# xlrd module version : 2.0.1# xlwt module version : 1.3.0# xlutils module version :2.0.0# 注意:1.只支持xls(excel 97/2003)文件,不支持xlsx(excel 2007/2010+)# 2.脚本中注释在实际使用时删掉,否则可能会在某些环境下有奇怪问题 import os,sysimport xlrd,xlwtfrom xlutils.copy import copy ## 旧的字符串old_str = ['pkgname','username','dbinfo','dbname']## 替换的新字符串,新旧列表中位置要对应new_str = ['PKGNAME','USERNAME','DBINFO','DBNAME'] ## 新旧字符串列表长度len_old_str = len(old_str)len_new_str = len(new_str)## 检查新旧字符串列表数量是否相等,不相等退出if len_old_str != len_new_str: print "\n[ Error ] 'old_str =",len_old_str,"' not eq 'new_str =",len_new_str,"'\n" sys.exit(); ## 小写转大写def str_to_STR( xls_list ): ## 读取Excle文件 wb = xlrd.open_workbook( xls_list ) ## 将uncode编码汉字显示成可读 reload(sys) sys.setdefaultencoding( "utf-8" ) ## 读取第1个索引的sheet页,索引0开始 sheet = wb.sheet_by_index(1) ## 读取excle里第一个sheet页,第10列(J列)内容,索引0开始 col = sheet.col_values(9) print "\n[ OK ] 共读取 %s 行。" %len(col) new_col = [] new_col_tmp = [] ## 循环替换小写到大写;for循环两个参数时用zip包含 for f_old_str,f_new_str in zip(old_str,new_str): print "[ Info ] 正在查找 '%s' 并替换成 '%s'" %(f_old_str,f_new_str) if not new_col_tmp : ## 首次循环列表空,复制列表 new_col_tmp = col for col_list in new_col_tmp: new_col.append(col_list.replace(f_old_str,f_new_str)) ## 交换列表值,防止多次循环重复添加 ## 清空列表 new_col_tmp = [] ## 复制列表 new_col_tmp = new_col ## 清空列表 new_col = [] print "[ OK ] 共修改 %s 行。" %len(new_col_tmp) ## save date to EXCLE row = 0 #行 column = 9 # 列 ## 新建文件 #workbook1 = xlwt.Workbook() ## 打开文件追加(覆盖)原内容,formatting_info=True保留文件原来格式 #workbook1 = xlrd.open_workbook(r'/media/win-share-c/test.xls') workbook1 = xlrd.open_workbook( xls_list, formatting_info=True) #print workbook ## 新文件中添加,名字为"Style"的sheet页,内容cell_overwrite_ok覆盖 #sheet_wt = workbook.add_sheet('Style',cell_overwrite_ok=True) ## 将xlrd的对象转化为xlwt的对象 workbook = copy(workbook1) ## 获取要操作的第0个sheet页 sheet_wt = workbook.get_sheet(1) ## 循环追加写入内容 for i in range(len(new_col_tmp)): sheet_wt.write(row,column,new_col_tmp[i]) ## 到下一行 row = row + 1 ## 捕获保存文件异常 try: workbook.save( xls_list ) except IOError: print "\n[ Error ] 写入错误,请关闭文件!\n" else: def_xls_file_name = os.path.basename(xls_list) print "\n[ OK ] 文件: %(def_xls_file_name)s 第%(column)s列,小写转大写完成,保存到文件完成!\n" % locals(); return ## function Maindef main(): ## 查找.xls后缀文件 xls_file_lists = [] ## 循环查找py文件同目录及子目录下的xls文件 for filepath,dirnames,filenames in os.walk(os.getcwd()): for filename in filenames: ## 文件后缀为.xls,则添加到列表中 if os.path.splitext(filename)[1] == '.xls': ## sep自动识别系统路径分割,用'/'或'\' #xls_file_lists.append(os.path.join(filepath,filename)) xls_file_lists.append(os.sep.join([filepath,filename])) len_xls_file_lists = len(xls_file_lists) print "\n共找到 %s 个xls后缀文件:" %len_xls_file_lists ## 列出找到的xls后缀文件 for list in xls_file_lists: print list ## 开始读取数据并替换 for xls_list in xls_file_lists: print "\n开始读取: %s" %xls_list str_to_STR( xls_list ) if ( __name__ == '__main__' ) or ( __name__ == 'main' ): main();
效果图:
image.png
执行提示
替换前:
image.png
替换前
替换后:
image.png
替换后
__EOF__
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月14日
2024年11月14日
- 刘德华《劲歌集》24K金碟港版[WAV+CUE][1.2G]
- Faker五冠王什么意思 世界赛五冠王Faker选手介绍
- faker塞拉斯s14决赛什么出装 faker塞拉斯s14决赛出装介绍
- LOLtoc9魔法口令在哪可以找到 2024云顶之弈toc观赛魔法口令兑换码
- 黑鸭子2008《影视经典·珍藏版》试音碟[WAV+CUE]
- 碧娜《温柔吻语2》[WAV+CUE]
- Stravinsky-Symphonies,Volume1-OrquestaSinfonicadeGalicia,DimaSlobodeniouk(2024)[24-
- 外媒评Switch2:向下兼容是关键 但挑战依然存在
- 任天堂提醒:宠物的尿或唾液或会让NS故障 把它放好!
- 《博德3》再创新高 Steam掌机总游玩时长近2000年
- 张玮伽《想你的夜DSD》东升 [WAV+CUE][1G]
- 姚璎格《 粤 24KGOLD》正版低速原抓[WAV+CUE][1G]
- 杨千嬅《如果大家都拥有海》寰亚 [WAV+CUE][998M]
- 孟庭苇.1994-1990-1994钻石精选集2CD(2022环球XRCD限量版)【上华】【WAV+CUE】
- 群星.1998-华纳好情歌精选17首【华纳】【WAV+CUE】