【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

0 0
原创粉丝点击