Python 编程实战提高测试工作效率实例之svn 文件管理

时间:2021-11-24 12:46:52

#coding=utf-8

'''

Created on 2016822

@author:Tom Gao

'''

importre

importos

importtime

"""

目的写一个批量复制svn上的代码到新分支的脚本

思路把想要copy目标文件人工写到a.txt文件里面,用python的文件操作读出文件内容,然后用正则re.sub替换将路径中test的单词替换位trunk单词,最后执行命令svn copy命令将所有文件拷贝到新目标路径下,再把替换之后的新生成的路径写到新的文件b.txt

"""

withopen('a.txt')as tp:#创建新文件,用于读取数据,把想要更新的svn路径加到里面

list1=[]#这个空列表目的是为了保存把读出来的路径保存到列表里面,然后再全部写入一个新文件里面

all_lines=tp.readlines()#按行读出来

#     print all_lines

time1=time.time()#计算下程序耗时

for i inxrange(len(all_lines)):       url1=all_lines[i].strip('\n')#因为我输入的路径都带换行的,所以此处去掉回车

print"url1: ",url1

printu"分割线格叽格叽"+"="*60

url2=re.sub('test','trunk',url1)#采用正则把路径里面test都换成trunk,你也可以根据自己所需替换,生成一个新svn路径

print"url2: ",url2

url3='svn '+'copy '+url1+' '+url2+' -m '+'\'new\''#拼接svn copy命令,将url1路径下所有内容copy到新路径下面

printurl3

printos.system(url3)#执行url3命令

list1.append(url2+'\n')#以下代码就是为了输出新svn路径到文件里面,方便你复制粘贴结果

withopen('b.txt','w+')as tf:#写入新路径

tf.writelines(list1)

printu"分割线格叽格叽"+"="*60

time2=time.time()

print'spend time %ssec'%(time2-time1)#输出程序耗时

最后为了方便把python文件编译成exe文件用到如下命令,前提要安装py2exe

fromdistutils.core importsetup

importpy2exe

setup(console=["trunk.py"],data_files=['a.txt'])

#trunk.py就是我最上面的python名字,a.txt就是这段程序需要用到的文件一起打包exe,执行如下命令在命令行窗口

python launch.py py2exe

最后会生成两个文件夹dist,build

查找dist下trunk.exe,双击执行,会一闪而过体验不好,这里我们加一个bat命令:

@echo off

echo starting......

trunk.exe

pause

“””

最后总结下知识点,三个部分,os.system,re,time最关键的其实就是调用svn命令行,把图形界面操作通过输入命令行形式执行,具体svn命令行有哪些在这里就不赘述了,除了可以copy还可以export checkout等等

最后送大家一句话,与君共勉

励志改变人生,编程改变命运!!!

“””

欢迎关注光荣之路喜马拉雅电台:http://m.ximalaya.com/weizhubo/44966139

Python 编程实战提高测试工作效率实例之svn 文件管理