首页
消防安全隐患排查和验收
域名转发系统
祺平订单系统
您所在的位置:首页 > python > 正文

python 同步目录与文件-排除文件 原生代码

239
# coding: utf-8

import os
import hashlib
import filecmp

####################################
# 同步目录与文件脚本
# 作者:川爷
####################################


# 基点目录
path_base = "/Users/chuanye/Pictures/test"

# 需同步目录
path_t = "/Users/chuanye/Pictures/metest"

# 排除文件或目录
excludeArr = ["jdbc.properties", "log4j.properties", "pages.properties"]


def copy_file(paths, patht):
    for filename in os.listdir(paths):
        filename_s = paths+os.sep+filename
        filename_t = patht+os.sep+filename

        # 排除文件或目录
        # 是否排除 默认否
        exclude = False
        for x in excludeArr:
            if x == filename:
                exclude = True
                print('[排除文件] "%s" ' % filename)
                break

        if exclude:
            continue

        # 判断路径是否为目录
        if os.path.isdir(filename_s):
            # 如果同步目录不存在则创建
            if not os.path.exists(filename_t):
                os.mkdir(filename_t)
            copy_file(filename_s, filename_t)
        else:
            # 判断同步文件是否存在
            #print(filename_t)
            if os.path.exists(filename_t):

                # 如果存在则判断文件内容是否一致
                if filecmp.cmp(filename_s, filename_t):
                    print('[文件内容一致] "%s"' % filename_t)
                else:
                    print('[同步文件] "%s" ' % filename_t)
                    with open(filename_s, 'rb') as f_s:
                        data_s = f_s.read()
                        with open(filename_t, 'wb') as f_t:
                            f_t.write(data_s)

            # 同步文件不存在 则写入
            else:
                print('[同步文件] "%s" ' % filename_t)
                with open(filename_s,'rb') as f_s:
                    data_s = f_s.read()
                    with open(filename_t, 'wb') as f_t:
                        f_t.write(data_s)

copy_file(path_base, path_t)


本文网址:http://www.14study.cn/show.asp?id=184

若本文章侵犯了您的著作权,请联系我删除 QQ:695898855

更多>>网友评论
发表评论