Python - Windows下使用Python脚本同步一个文件夹下的所有文件到另一个文件夹下

Python同步文件

在Windows下使用Python脚本同步一个文件夹下的所有文件到另一个文件夹下

示例代码

python 复制代码
import logging
import os
import shutil


def sync_files(src_file_path, dst_dir_path, exclude_list):
    try:
        if not os.path.exists(src_file_path):
            os.makedirs(src_file_path)
        if not os.path.exists(dst_dir_path):
            os.makedirs(dst_dir_path)
        # 查找所有文件/文件夹
        for root, dirs, files in os.walk(src_folder_path):
            # 遍历添加创建所有文件夹
            for dir in dirs:
                if dir in exclude_list:
                    break
                dst_dir_path = os.path.join(dst_folder_path, os.path.relpath(os.path.join(root, dir), src_folder_path))
                if not os.path.exists(dst_dir_path):
                    os.makedirs(dst_dir_path)
            # 遍历添加文件
            for file in files:
                src_file_path = os.path.join(root, file)
                dst_file_path = os.path.join(dst_folder_path,
                                             os.path.relpath(os.path.join(root, file), src_folder_path))
                if file in exclude_list:
                    continue
                shutil.copy(src_file_path, dst_file_path)
        print("文件同步完成!")
    except Exception as e:
        logging.warning(f'文件同步出错 ===> error:{e}')


if __name__ == '__main__':
    src_folder_path = "D:/Johnson/myProject/project-gitee/easy-test-demo/test"
    dst_folder_path = "D:/Johnson/myProject/project-gitee/easy-test-demo/ttt"
    # 不同步的文件夹或文件列表
    exclude_list = ['.git-test', 'sync_local_code.bat', 'tt1.py']
    sync_files(src_folder_path, dst_folder_path, exclude_list)

附上一个.bat脚本文件,把相应的目录设置好后需要同步文件的时候双击该文件即可执行,不需要在启动.py文件

bash 复制代码
title=Sync Code
color 0F
rem @echo off
cd %~dp0
set cd=%~dp0
set PY_HOME=D:\Python\python385
set PATH=%PATH%;%PY_HOME%;%PY_HOME%/Scripts;%cd%/Scripts
@echo on
python sync_files.py

:: 窗口停留
cmd /k

运行效果

相关推荐
Dfreedom.22 分钟前
一文掌握Python四大核心数据结构:变量、结构体、类与枚举
开发语言·数据结构·python·变量·数据类型
一半烟火以谋生23 分钟前
Python + Pytest + Allure 自动化测试报告教程
开发语言·python·pytest
虚行23 分钟前
C#上位机工程师技能清单文档
开发语言·c#
小羊在睡觉1 小时前
golang定时器
开发语言·后端·golang
CoderCodingNo1 小时前
【GESP】C++四级真题 luogu-B4068 [GESP202412 四级] Recamán
开发语言·c++·算法
叶子丶苏1 小时前
第八节_PySide6基本窗口控件_按钮类控件(QAbstractButton)
python·pyqt
Larry_Yanan2 小时前
QML学习笔记(四十四)QML与C++交互:对QML对象设置objectName
开发语言·c++·笔记·qt·学习·ui·交互
百锦再2 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven
Want5952 小时前
C/C++大雪纷飞①
c语言·开发语言·c++
Blossom.1183 小时前
把AI“刻”进玻璃:基于飞秒激光量子缺陷的随机数生成器与边缘安全实战
人工智能·python·单片机·深度学习·神经网络·安全·机器学习