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
运行效果