日常工作中,经常有项目修改后,要更新,全部打包war包更新的话很费事,写个脚本,主要实现:
提取指定日期后修改的文件
过滤某些目录和文件
将提取的文件打包
FTP到指定的服务器
之前用VBS和VB写了一个,效率不理想。用Java写了一个效率不错,可惜想修改的话,就要动用eclipse,最后用python+DOS命令解决了快速修改和效率的问题
Eclipse项目目录版本:
import os import shutil import tarfile from ftplib import FTP app_name = "lfpt_hb" project_home = "D:\java\project_hf" update_home = "E:\PythonUpdate" time_modify = "4-26-2013" #format m-d-y path_src_web = r"%s\%s\WebContent" %(project_home, app_name) path_src_cls = r"%s\%s\build\classes" %(project_home, app_name) path_src_lib = r"%s\%s\WebContent\WEB-INF\lib" %(project_home, app_name) path_dst_web = r"%s\%s" %(update_home, app_name) path_dst_cls = r"%s\%s\WEB-INF\classes" %(update_home, app_name) path_dst_lib = r"%s\%s\WEB-INF\lib" %(update_home, app_name) file_zip = r"%s\%s_%s.tar.gz" %(update_home, app_name, time_modify) #set exclude file for xcopy /exclude:file exclude_all = "/EXCLUDE:update_client_exclude_all.txt" exclude_lib = "/EXCLUDE:update_client_exclude_lib.txt" # ftp settings ftp_server = "192.168.3.231" ftp_port = "21" ftp_user = "update" ftp_password = "update" def copy_web_files(): cmd_xcopy = 'xcopy %s %s /I /Y /S /D:%s %s' %(path_src_web, path_dst_web, time_modify, exclude_all) print(cmd_xcopy) os.system(cmd_xcopy) print("copy_web_files end...") def copy_jar_files(): cmd_xcopy = "xcopy %s %s /I /Y /S %s" %(path_src_lib, path_dst_lib, exclude_lib) print(cmd_xcopy) os.system(cmd_xcopy) def copy_class_files(): if not os.path.exists(path_dst_cls): cmd_xcopy = "xcopy %s %s /I /Y /S /D:%s %s" %(path_src_cls, path_dst_cls, time_modify, exclude_all) print(cmd_xcopy) os.system(cmd_xcopy) print("copy_web_files end...") def tar_files(): print("taring files...") tar = tarfile.open(file_zip, "w:gz") tar.add(path_dst_web, "") tar.close() def ftp_stor_files(): cmd_stor = "STOR %s" %(os.path.split(file_zip)[1]) print(cmd_stor) ftp = FTP(ftp_server, ftp_user, ftp_password) ftp.getwelcome() ftp.storbinary(cmd_stor, open(file_zip, "rb"), 1024) ftp.close() #ftp.quit() def clear(): cmd_rmdir = "rmdir /S /Q %s" %(path_dst_web) cmd_del = "del /S /Q %s" %(file_zip) print cmd_rmdir print cmd_del os.system(cmd_rmdir) os.system(cmd_del) if __name__ == "__main__": copy_web_files() #copy_jar_files() copy_class_files() tar_files() ftp_stor_files() clear() print("done, python is great!")
Maven目录结构的版本:
#! /usr/bin/env python # -*- coding: utf-8 -*- #@author jinqinghua@gmail.com #@version 2013-05-28 import os import shutil import tarfile from ftplib import FTP #以下部分可能要修改 app_name = "eoa-web" project_home = "D:\Java\workspace\project-svn\eoa-parent" update_home = "F:\PythonUpdate" time_modify = "5-27-2013" #format m-d-y path_src_web = r"%s\%s\src\main\webapp" %(project_home, app_name) path_src_cls = r"%s\%s\target\classes" %(project_home, app_name) path_src_lib = r"%s\%s\target\eoa-web\WEB-INF\lib\WEB-INF\lib" %(project_home, app_name) path_dst_web = r"%s\%s" %(update_home, app_name) path_dst_cls = r"%s\%s\WEB-INF\classes" %(update_home, app_name) path_dst_lib = r"%s\%s\WEB-INF\lib" %(update_home, app_name) file_zip = r"%s\%s_%s.tar.gz" %(update_home, app_name, time_modify) #set exclude file for xcopy /exclude:file exclude_all = "/EXCLUDE:update_client_exclude_all.txt" exclude_lib = "/EXCLUDE:update_client_exclude_lib.txt" # ftp settings ftp_server = "192.168.0.220" ftp_port = "21" ftp_user = "admin" ftp_password = "admin" def copy_web_files(): cmd_xcopy = 'xcopy %s %s /I /Y /S /D:%s %s' %(path_src_web, path_dst_web, time_modify, exclude_all) print(cmd_xcopy) os.system(cmd_xcopy) print("copy_web_files end...") def copy_jar_files(): cmd_xcopy = "xcopy %s %s /I /Y /S %s" %(path_src_lib, path_dst_lib, exclude_lib) print(cmd_xcopy) os.system(cmd_xcopy) def copy_class_files(): if not os.path.exists(path_dst_cls): cmd_xcopy = "xcopy %s %s /I /Y /S /D:%s %s" %(path_src_cls, path_dst_cls, time_modify, exclude_all) print(cmd_xcopy) os.system(cmd_xcopy) print("copy_web_files end...") def tar_files(): print("taring files...") tar = tarfile.open(file_zip, "w:gz") tar.add(path_dst_web, "") tar.close() def ftp_stor_files(): cmd_stor = "STOR %s" %(os.path.split(file_zip)[1]) print(cmd_stor) ftp = FTP(ftp_server, ftp_user, ftp_password) ftp.getwelcome() ftp.storbinary(cmd_stor, open(file_zip, "rb"), 1024) ftp.close() #ftp.quit() def clear(): cmd_rmdir = "rmdir /S /Q %s" %(path_dst_web) cmd_del = "del /S /Q %s" %(file_zip) print cmd_rmdir print cmd_del os.system(cmd_rmdir) os.system(cmd_del) #主运行程序,可能要修改 if __name__ == "__main__": copy_web_files() #copy_jar_files() copy_class_files() tar_files() ftp_stor_files() #clear() print("done, python is great!")
相关推荐
Python实战自动办公-25 Pandas提取指定数据并保存在原Excel工作簿中Python实战自动办公-25 Pandas提取指定数据并保存在原Excel工作簿中Python实战自动办公-25 Pandas提取指定数据并保存在原Excel工作簿中Python实战...
Python实战自动办公- 一键将word中的表格提取到excel文件中Python实战自动办公- 一键将word中的表格提取到excel文件中Python实战自动办公- 一键将word中的表格提取到excel文件中Python实战自动办公- 一键将word中的...
无论是初学者还是经验丰富的程序员,都可以利用这个强大的工具来实现各种计算任务,从数据科学到web开发,再到自动化脚本,Python都能胜任。通过持续学习和实践,你可以深入掌握Python的精髓,并利用其丰富的生态...
通过"Python一键安装包-windows版.zip",用户可以快速便捷地在Windows系统上搭建Python开发环境,从而更好地投入到Python的学习和项目开发中。只需解压并运行脚本,就可以省去手动设置的麻烦,更加专注于编写代码和...
这个`.exe`文件是一个可执行程序,适用于Windows 7和10操作系统,方便用户直接安装Python环境。在深入探讨这个安装文件之前,我们先来了解一下Python和它的主要特性。 Python是一种高级编程语言,以其易读性强、...
7. **环境变量**:安装Python时,一般会自动将Python和pip的路径添加到系统环境变量,使得在任何目录下都可以运行Python和pip命令。 8. **后续步骤**:安装完成后,用户可以开始学习Python编程,通过IDLE(集成开发...
安装Python后,用户可以利用它进行各种开发任务,如Web开发(使用Django或Flask框架)、数据分析(Pandas、NumPy、SciPy等库)、机器学习(TensorFlow、PyTorch)、自动化脚本等。此外,Python的pip工具允许用户方便...
Python 自动办公- 一键将word中的表格提取到excel文件中 Python源码Python 自动办公- 一键将word中的表格提取到excel文件中 Python源码Python 自动办公- 一键将word中的表格提取到excel文件中 Python源码Python 自动...
在Windows环境下,Python的安装过程通常通过执行可执行文件(如本例中的`python-3.10.4-amd64.exe`)来完成。 1. **Python 3.10.4 版本特性** - 优化性能:每个新版本都会带来性能的提升,Python 3.10.4也不例外,...
Python实战自动办公- 批量修改word文件中的段落格式Python实战自动办公- 批量修改word文件中的段落格式Python实战自动办公- 批量修改word文件中的段落格式Python实战自动办公- 批量修改word文件中的段落格式Python...
Python实战自动办公- Python一键提取PDF中的表格到Excel;Python实战自动办公- Python一键提取PDF中的表格到Excel;Python实战自动办公- Python一键提取PDF中的表格到Excel;Python实战自动办公- Python一键提取PDF...
- "python-3.8.10-amd64.exe"是Python的安装程序,双击运行后,用户可以选择自定义安装路径、是否添加Python到系统环境变量,以及选择安装额外的组件,如IDLE(集成开发环境)和pip(包管理器)。 - 安装过程中,...
Python的强大在于其丰富的生态系统,这使得它成为Web开发、数据分析、机器学习、自动化等领域的首选语言之一。 总之,"python-3.11.2-arm64.exe"的zip压缩包为Windows x64(尤其是ARM64设备)提供了Python 3.11.2的...
4. 配置环境变量:当选择添加Python到PATH时,系统环境变量将被自动更新,使得Python解释器和pip(Python的包管理器)能在任何目录下被调用。 5. 同步版本:如果你已经安装了其他Python版本,确保新安装的3.7.2版本...
Python是一种高级编程语言,以其简洁明了的语法和强大的功能而受到全球...同时,Python在Web开发(如Django、Flask框架)、数据分析、机器学习、自动化运维等领域都有广泛的应用,是现代软件开发中不可或缺的工具之一。
这允许你在不改变全局Python环境的情况下,指定特定的库路径。 2. **python.cat**:这是一个微软Windows上的安全描述符定义语言(SDDL)文件,用于验证软件的完整性。它通常与数字签名相关,确保你下载的Python版本...
在Python编程中,将Excel表格数据上传到FTP服务器是一项常见的任务,特别是在数据处理和文件共享的场景下。这里,我们主要关注如何使用Python的库来实现这个功能,以及FTP网络编程的基本概念。 首先,我们需要了解...
2. **备份原有环境**:如果之前已经安装过其他版本的Python,建议先备份原有的开发环境配置文件,避免后续出现冲突。 #### 具体步骤 1. **双击运行安装程序**:找到已下载的“python-3.7.3-amd64.exe”文件并双击...