深圳建站的公司,上海园区虚拟地址一览表,ui培训设计培训班,Python能开发WordPress背景#xff1a;本地Windows系统指定目录下会有文件的修改新增#xff0c;这些变化的文件需要定时的被上传到git仓库中#xff0c;这样不需要每次变更手动上传了。
首先编写一个检测文件夹下文件变化并且上传git仓库的python脚本(确保你已经在E:\edc_workspace\data_edc_et…背景本地Windows系统指定目录下会有文件的修改新增这些变化的文件需要定时的被上传到git仓库中这样不需要每次变更手动上传了。
首先编写一个检测文件夹下文件变化并且上传git仓库的python脚本(确保你已经在E:\edc_workspace\data_edc_etl目录下初始化了Git并且正确配置了远程仓库)
import os
import subprocess
from datetime import datetime
import logging
# 设置日志
log_file E:\\edc_workspace\\data_edc_etl\\upload.log
logging.basicConfig(filenamelog_file, filemodea, format%(asctime)s - %(message)s, levellogging.INFO)
# 文件夹路径
folder_path E:\\edc_workspace\\data_edc_etl
# 上次检查时间的文件路径
last_check_file E:\\edc_workspace\\data_edc_etl\\last_check.txt
def get_last_check_time():try:with open(last_check_file, r) as f:last_check_str f.read()return datetime.fromisoformat(last_check_str)except Exception as e:logging.error(fError reading last check time: {e})# 如果无法读取上次检查的时间返回当前时间return datetime.now()
def set_last_check_time():now datetime.now()with open(last_check_file, w) as f:f.write(now.isoformat())
def check_for_changes(folder_path, last_check):has_changes Falsefor root, dirs, files in os.walk(folder_path):for file in files:file_path os.path.join(root, file)last_modified_time datetime.fromtimestamp(os.path.getmtime(file_path))if last_modified_time last_check:logging.info(fDetected change in file: {file_path})has_changes Truereturn has_changes
def upload_to_git():try:os.chdir(folder_path) # Change directory to the reposubprocess.run([git, add, .], checkTrue) # Stage changessubprocess.run([git, commit, -m, watchdog自动上传本地数据仓库文件], checkTrue) # Commit changessubprocess.run([git, push, origin, master], checkTrue) # Push changeslogging.info(Changes pushed to git.)except subprocess.CalledProcessError as e:logging.error(fFailed to upload to git: {e})
if __name__ __main__:last_check get_last_check_time()if check_for_changes(folder_path, last_check):upload_to_git()else:logging.info(No changes detected.)set_last_check_time()
文件手动测试OK 接下来配置Windows的定时任务
1、打开【任务计划程序】 打开任务计划程序的方式有很多打开控制面板点击系统和安全可以看到任务计划程序 2、打开【创建任务】窗口 创建一个文件夹用来存放你的定时任务文件选择现有的目录也可以但是下次你可能就很难找到新建的任务选择新建的文件夹右键点击“创建任务”打开任务创建窗口。 3、创建任务一一常规 任务名称为必填项其他可以根据实际需要选填 4、创建任务一一触发器 在触发器tab界面点击新建打开新建触发器窗口 下拉列表中有多种开始任务的策略选择不同的选项下方的填写项也会有变化。我这里就选择常用的 “按预定计划”
其他配置根据实际需求选择配置。
5、创建任务一一操作 在操作tab界面点击新建打开新建操作窗口 程序或脚本 方式1直接填写 python前提是 python 解释器 路径已配置到了 Path 环境变量 方式2填写 python 解释器的 绝对路径如D:\Chen\Python\Python3.12.4\python.exe
添加参数 填写脚本路径及脚本需要的参数 1如果起始于项未填写则脚本路径需要绝对路径 2如果起始于项填写了则脚本路径可以填绝对路径也可以填相对路径相对于起始于给的路径 3脚本如果需要参数在脚本名称后空格然后跟传参值即可多个参数值之间也用空格隔开。
起始于 程序或脚本打开时的工作路径 1如果未填写脚本需要给出绝对路径且脚本代码内如果有使用文件或目录的地方也需要使用绝对路径否则会找不到对应文件或目录 2如果填写了脚本可以使用相对路径且脚本代码内如果有使用文件或目录的地方也可以使用相对路径
6、创建任务一一条件 创建任务执行的条件这里的条件与触发器是且的关系即 触发器和条件同时满足时才会执行任务
这里有一点需要注意如果你的脚本需要联网才能正常运行需要勾选只有在以下网络连接可用时才启动并且选择对应的网络
7、创建任务一一设置 设置影响任务行为的其他设置 8、完成任务创建 设置完后最后点击确认完成任务创建。
任务创建完成后可以查看任务配置信息如上图所示。 如果想要修改任务可以点击右侧的属性打开任务编辑窗口进行相关修改。 任务会在设定的时间去执行在上次运行结果可以看到最近一次任务执行的状态会有对应的状态码及提示信息。
验证
查看日志 查看远程仓库