日常工作中,经常有项目修改后,要更新,全部打包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实战自动办公- 一键将word中的表格提取到excel文件中Python实战自动办公- 一键将word中的表格提取到excel文件中Python实战自动办公- 一键将word中的表格提取到excel文件中Python实战自动办公- 一键将word中的...
Python实战自动办公-25 Pandas提取指定数据并保存在原Excel工作簿中Python实战自动办公-25 Pandas提取指定数据并保存在原Excel工作簿中Python实战自动办公-25 Pandas提取指定数据并保存在原Excel工作簿中Python实战...
这个`.exe`文件是一个可执行程序,适用于Windows 7和10操作系统,方便用户直接安装Python环境。在深入探讨这个安装文件之前,我们先来了解一下Python和它的主要特性。 Python是一种高级编程语言,以其易读性强、...
在Windows操作系统上,为了方便地安装和使用Python,我们可以借助集成开发环境(IDE)和自动化工具。在这个"python一键安装包-windows版.zip"压缩包中,包含的是一个为Windows用户设计的Python安装解决方案,特别地...
安装Python后,用户可以利用它进行各种开发任务,如Web开发(使用Django或Flask框架)、数据分析(Pandas、NumPy、SciPy等库)、机器学习(TensorFlow、PyTorch)、自动化脚本等。此外,Python的pip工具允许用户方便...
在Windows环境下,Python的安装过程通常通过执行可执行文件(如本例中的`python-3.10.4-amd64.exe`)来完成。 1. **Python 3.10.4 版本特性** - 优化性能:每个新版本都会带来性能的提升,Python 3.10.4也不例外,...
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的...
这允许你在不改变全局Python环境的情况下,指定特定的库路径。 2. **python.cat**:这是一个微软Windows上的安全描述符定义语言(SDDL)文件,用于验证软件的完整性。它通常与数字签名相关,确保你下载的Python版本...
在Python编程中,将Excel表格数据上传到FTP服务器是一项常见的任务,特别是在数据处理和文件共享的场景下。这里,我们主要关注如何使用Python的库来实现这个功能,以及FTP网络编程的基本概念。 首先,我们需要了解...
1. 文件操作:Python在Windows下可以方便地进行文件读写操作,使用内置的`open()`函数结合各种模式(如'w'、'r'、'a')进行文件的创建、读取和追加。 2. 系统交互:通过`os`和`subprocess`模块,Python能够调用系统...
Python办公自动化是一个强大的工具,它能够极大地提升工作效率,特别是在处理大量数据、文件管理和自动化任务时。"光速对比文件"这个项目集锦了多种用于文件对比的Python源码,可以帮助用户快速有效地比较不同文件或...
Python是一种高级编程语言,以其简洁明了的语法和强大的功能而受到全球开发者的喜爱。...通过下载并安装“python-3.9.2-amd64.rar”中的exe文件,Windows 64位用户可以轻松地将他们的开发环境更新到这个版本。
这个安装包适用于Windows操作系统,意味着它是一个为Windows环境设计的可执行安装程序(`.msi` 文件)。在本文中,我们将深入探讨Python 2.5的安装过程以及它在IT领域的相关知识。 首先,让我们了解Python 2.5的...
标题中的“使用-python-开发-windows-桌面程序”指的是利用Python编程语言来构建Windows操作系统上的桌面应用程序。Python是一种高级编程语言,以其简洁的语法和强大的功能而受到开发者喜爱。在Windows平台上,...
使用这个压缩包,开发者可以在不安装完整Python环境的情况下快速启动Python环境,这对于临时项目、教学演示或者自动化脚本等场景非常方便。只需将压缩包解压到任意位置,然后通过双击"python.exe"或"pythonw.exe...
根据提供的文件信息,这里总结出的知识点涉及Python编程语言的基础知识、历史、优缺点、以及如何在Windows和Linux环境下搭建Python编程环境。 Python基础知识: Python是一种高级编程语言,由Guido van Rossum在...
Python-web-scraping-master是一个使用Python编写的高级网页爬虫项目,旨在帮助用户自动化从网页中提取数据的过程。这个项目不仅适用于初学者,也对有经验的开发者提供了丰富的功能和可扩展性。以下是对该项目的详细...