python批量修改文件内容及文件编码方式的处理
2024-08-27 23:49:31
最近公司在做tfs迁移,后面要用新的ip地址去访问tfs 拉取代码 ,所以原来发布脚本中.bat类型的脚本中的的ip地址需要更换
简单说下我们发布脚本层级目录 :每个服务站点下都会有一个发布脚本 .bat文件或.sh文件
所有站点保存在本地某个文件夹下 目录结构如图:
先发代码 后面在详说下过程中遇到的坑:
运行后结果
踩坑回顾:
刚开始我都是以utf-8编码模式去读写,发现有的脚本会处理成功 然后就会报错 报错如下:
'utf8' codec can't decod
大概意思就是 utf-8编码无法解析读取的文件内容
查阅了下资料 说是windows编码方式是gbk ,ok 我把utf-8的编码方式改成了gbk 觉得这次应该差不多了 走起运行 果不其然 正常的处理了几个文件后 又报错了:
'gbk' codec can't decod
@#¥%@#%@#%#@%
还是编码方式的问题
好吧 我恶补了下文件的编码类型及编码类型的获取 知道了 chardet 模块 写了个方法识别文件的编码方式
def recognition(path):
file = open(path, "rb")
buf = file.read()
result = chardet.detect(buf)
return result['encoding']
随机找了几个脚本文件去跑 发现有的.bat文件的编码类型是utf-8 有的是GB2312 还有的是ISO-8859-9 也是够奇葩的
找到问题所在了 当时想了两个解决方案
1 统一文件编码方式 然后再去处理
2 判断文件的编码方式 什么编码方式 就用该编码方式去处理
当时觉得方案1 比较极端 所以采用了方案2
可以发现 方案2我对编码方式为ISO-8859-9 的 直接pass掉了 。虽然也是.bat的文件 但是这种编码方式的文件并不是我们的发布脚本
ok 没了
最新文章
- 用遗传算法GA改进CloudSim自带的资源调度策略
- Unity3D 搭建优雅的UI框架
- [整理]Centos6.5 + hadoop2.6.4环境搭建
- HTML5 canvas处理图片的各种效果,包括放大缩小涂鸦等
- 烂泥:nagios学习(四):pnp4nagios图形化绘制nagios数据
- svn强制解锁的几种做法
- ooofc.com域名备案问题导致无法正常访问临时解决方案
- AngularJS学习笔记1
- nginx 中文文件名显示问题
- Scheme实现二叉查找树及基本操作(添加、删除、并、交)
- Win7系统如何复制CMD命令提示符框中的内容
- Python2和Python3安装教程
- AppImage格式安装包使用
- 监控工具之zabbix server3.4 部署配置
- 重新认识Javascript的一些误区总结
- mybatis逆向工程总结工具类
- VC++ 知识点
- modelsim 仿真xilinx fir ip
- 这几天添加ccbi 出现的问题
- BZOJ 2120 数颜色 【带修改莫队】