本来是想写一个东西可以直接调用TortoiseSVN保存当前代码到一个分枝下的。
可惜调用SVN的部分还在研究。就先写了目录拷贝的部分。
如果有喜欢研究Python的童鞋愿意提供想法或者建议的话,
这里先谢谢了。 :)
就目录拷贝的部分,思想很简单。读配置文件中的配置信息。
生成一个项目名称加日期时间组成的文件夹名为分枝名称。把当前项目下的全部内容
拷贝到这个目录下。
然后要做的研究就是调用TortoiseSVN命令嵌入这部分代码。
现在看代码:
1. 读取配置文件
配置文件很简单。用的就是txt文件。 格式类似于:
# root:/Users/lichallenger/test_src/ # project:test # destination:/Users/lichallenger/test_dst/
BTW: 我用的是Mac所以目录格式是这样的。如果你用的是Windows的话请适
当修改配置文件。
读文件就是最简单的了。直接用标准库的文件操作模块打开文件,读出全部的配置。一共就三行,所以
也不用考虑效率什么的了。
# open config file and read config information # author: bruce li class ConfigHandler(object): # def __init__(self,config_path): '''initializer''' self.config_path = config_path #read config infor def read_config(self): f = open(self.config_path) try: self.all_lines = f.readlines() except: raise else: f.close()
2. 拷贝目录和目录内容
拷贝目录用了shutil模块。里面有个方法可以直接把目录和目录下的全部内容拷贝到制定的其他目录。
这样就省得搞目录遍历之类的代码了。
# copy dir(s) & file(s) to configured path # author: bruce li import shutil class CopyHandler(object): # def __init__(self,src_path,dest_path): self.src_path = src_path self.dest_path = dest_path def move_content(self): try: shutil.copytree(self.src_path,self.dest_path) except: raise @staticmethod def move_src_content(src, dest): try: shutil.copytree(src_path,dest_path) except: raise
3. 综合调用
这里用了time模块获取当前时间,然后生成目标文件夹名称的一部分。
外界给python传的系统参数的第一个是文件名。这个文件就相当于C#项目里的Program文件一样,
里面会包含一个main函数。虽然这个函数不一定要命名为main。
还有注意下,Python代码的换行符为\。
# main of dir copy function
import sys import time from code_bk_cpy import * from code_bk_config import * #print __name__ def main(): config_path = sys.argv[1] # check if path of configuration path is empty if (not config_path): print 'configuration information is needed' return -1 config_handler = ConfigHandler(config_path) config_handler.read_config() config_list = config_handler.all_lines if len(config_list) != 3: print 'configuration information is not correct' return -1 # set source sep = ':' current_datetime = time.localtime(time.time()) root_path = config_list[0].split(sep)[1] prj_name = config_list[1].split(sep)[1] dst_path = config_list[2].split(sep)[1] root_path = (root_path + prj_name).replace('\n','') prj_folder = prj_name + str(current_datetime.tm_year) + str(current_datetime.tm_mon) + str(current_datetime.tm_mday) + str(current_datetime.tm_hour) + str(current_datetime.tm_min) + str(current_datetime.tm_sec) dst_path = (dst_path + '/' + prj_folder + '/').replace('\n','') copy_handler = CopyHandler(root_path,dst_path) copy_handler.move_content() print 'content moved' # start main function print __name__ if __name__ == "__main__": main()
有时间我会研究下TortoiseSVN调用那块的东西。估计不会难,就是调用exe传参的问题。
本人初学Python,如有问题敬请指正!谢谢。
以上这篇Python备份目录及目录下的全部内容的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]
- 永恒英文金曲精选4《TheBestOfEverlastingFavouritesVol.4》[WAV+CUE]
- 群星《国风超有戏 第9期》[320K/MP3][13.63MB]
- 群星《国风超有戏 第9期》[FLAC/分轨][72.56MB]