【python】python文件批量替换小程序
来源:互联网 发布:特斯拉model3知乎 编辑:程序博客网 时间:2024/05/21 09:39
# !/usr/bin/python
#coding=utf-8
# 自动更新 jar文件
# 使用方法:
# linux环境:执行以下命令
# python sumpay_updateJAR.py [新版本JAR文件存放目录] [旧版本JAR文件存放目录]
#
import os
import re
import sys
# 遍历 源目录下jar文件
def cur_file_dir(rootdir, distdir):
for parent, dirnames, filenames in os.walk(rootdir):
for filename in filenames:
if filename.find(“.jar”) >= 0:
# 更新jar文件
replaceFile(rootdir, distdir, filename);
# 更新jar文件
def replaceFile(rootdir, distdir, sourceFileName):
if len(sourceFileName) <= 0:
return;
realFileName = getFileName(sourceFileName);
for parent, dirnames, filenames in os.walk(distdir):
for filename in filenames:
if filename.startswith(realFileName) == True:
# 新jar 版本号
srcFileVer = getFileVer(sourceFileName);
# 旧jar 版本号
distFileVer = getFileVer(filename);
# 版本号比较
if vc(srcFileVer, distFileVer) == “>”:
delFile = os.path.join(parent, filename);
if os.path.exists(delFile) == True:
os.remove(delFile);
targetFile = os.path.join(parent, sourceFileName);
sourceFile = os.path.join(rootdir, sourceFileName);
open(targetFile, “wb”).write(open(sourceFile, “rb”).read());
print targetFile;
print “>>>更新成>>>”
print sourceFile
print “\n”
print “————————————-”;
# 版本号比较 v1>v2 返回 “>” v1<v2 返回 “<” v1=v2 返回 “=”
def vc(v1, v2):
d1 = re.split(‘\.’, v1)
d2 = re.split(‘\.’, v2)
d1 = [int(d1[i]) for i in range(len(d1))]
d2 = [int(d2[i]) for i in range(len(d2))]
if (d1 > d2):
return ‘>’
if (d1 < d2):
return ‘<’
if (d1 == d2):
return ‘=’
# 截取jar文件的文件名 例:cashier-cache-1.0.1.jar 返回文件名为:cashier-cache
def getFileName(fullName):
index = fullName.rfind(“-”);
if index >= 0:
f_name = fullName[0:index];
else:
f_name = “”;
return f_name;
# 截取jar文件的版本号 例:cashier-cache-1.0.1.jar 返回文件名为:1.0.1
def getFileVer(fullName):
index = fullName.rfind(“-”);
dotIndex = fullName.rfind(“.”);
if dotIndex >= 0:
version = fullName[index + 1:dotIndex];
else:
version = “”;
return version;
if __name__ == “__main__”:
if len(sys.argv) > 1 and len(sys.argv) == 3:
# rootdir = r”F:\libs” # 需要处理的文件夹
rootdir = r”" + sys.argv[1] # 需要处理的文件夹
rootdir = unicode(rootdir, “utf8″)
# distdir = r”E:\lib” # 目标文件夹
distdir = r”" + sys.argv[2] # 目标文件夹
distdir = unicode(distdir, “utf8″)
#
print rootdir + “———” + distdir + “\n”;
cur_file_dir(rootdir, distdir);
# print sys.argv
# print len(sys.argv)
# print sys.argv[0]
# print sys.argv[1]
# print sys.argv[2]
# print “————————————-”;
# filename = “cashier-cache-1.0.1.jar”
# print filename;
# print “————————————-”;
# print “filename:” + getFileName(filename) + ” version:” + getFileVer(filename);
# print “————————————-”;
# print vc(getFileVer(filename), getFileVer(“cashier-cache-1.0.2.jar”));
来源:http://fcjblog.com/python-wen-jian-pi-liang-ti-huan-xiao-cheng-xu
- 【python】python文件批量替换小程序
- Python小程序练习---敏感词替换成*星号
- python脚本文件批量改名
- python 文件批量剪切
- python版文件批量改名
- python文件批量改名
- Python-2 Python小程序
- python文件批量重命名、删除文件夹
- 用PYTHON對文件批量改名
- Python同目录文件批量重命名
- 利用Python对文件批量命名
- 图片文件批量重命名(Python)
- python小程序
- python 小程序
- python小程序
- python 简单小程序
- python小程序集锦
- python爬虫小程序
- Deploying an ASP.NET Web Application
- C++隐式转换的危险之处
- 【IDEA】intellij idea 插件推荐
- 从实模式到保护模式的关键一跳,寻址方式发生了改变,其中指令流的连续执行时如何保证的?
- flex4 dataGrid 单元格内加超链接
- 【python】python文件批量替换小程序
- 分布式系统CAP
- 常用的android弹出对话框
- Raphael.js API之Element.unXXX(),Paper.getElementByPoint(),Paper.getElementsByPoint(),vee(),Element.ge
- 二叉树的递归+非递归遍历
- 自定义UITabBarController
- VimScript脚本语言学习------常用的内置函数---(读写当前缓冲区)
- webtrends之ODBC源数据获取(二)——ACCESS访问篇
- Android 4.2原生支持从右到左的文字排列格式