zoukankan      html  css  js  c++  java
  • python批量修改文件内容及文件编码方式的处理

    最近公司在做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  没了 

  • 相关阅读:
    js事件
    增量
    文本文件输入(忽略行)
    当数据库的字段为date类型时候
    枚举的使用
    input输入框用el对数字格式化
    图片提交按钮各浏览器不兼容问题
    js对数字的校验
    时间控件
    ymPrompt消息提示组件4.0版 演示及使用简介
  • 原文地址:https://www.cnblogs.com/dwtt/p/8360831.html
Copyright © 2011-2022 走看看