`

python实现文件夹同步

阅读更多

定义SynDirTool类,用于同步两个文件夹的内容,从/usr/local/a文件夹到/usr/local/b文件夹,执行方法:

 

python SynDirTool.py /usr/local/a  /usr/local/b

 SynDirTool.py文件内容:

 

 

#!/usr/bin/python
# -*- coding:utf-8 -*-

import os
import shutil
import sys
import logging
class SynDirTool:
	def __init__(self,fromdir,todir):
		self.fromdir = fromdir
		self.todir = todir

	def synDir(self):
		return self.__copyDir(self.fromdir,self.todir)

	def __copyDir(self,fromdir,todir):
		#防止该目录不存在,创建目录
		self.__mkdir(todir)
		count = 0
		for filename in os.listdir(fromdir):
			if filename.startswith('.'):
				continue
			fromfile = fromdir + os.sep + filename
			tofile = todir + os.sep + filename
			if os.path.isdir(fromfile):
				count += self.__copyDir(fromfile,tofile)
			else:
				count += self.__copyFile(fromfile,tofile)
		return count

	def __copyFile(self,fromfile,tofile):
		if not os.path.exists(tofile) :
			shutil.copy2(fromfile,tofile)
			logging.info("新增%s ==> %s" % (fromfile,tofile))
			return 1
		fromstat = os.stat(fromfile)
		tostat = os.stat(tofile)
		if fromstat.st_ctime > tostat.st_ctime:
			shutil.copy2(fromfile,tofile)
			logging.info("更新%s ==> %s" % (fromfile,tofile))
			return 1
		return 0


	def __mkdir(self,path):
		# 去除首位空格
		path=path.strip()
		# 去除尾部 \ 符号 或者 /
		path=path.rstrip(os.sep)

		# 判断路径是否存在
		isExists=os.path.exists(path)

		# 判断结果
		if not isExists:
			# 如果不存在则创建目录
			logging.info(path+' 目录创建成功')
			# 创建目录操作函数
			os.makedirs(path)
if __name__ == '__main__':
	srcdir=sys.argv[1]
	descdir=sys.argv[2]
	logging.basicConfig(filename='SynDirTool.log', level=logging.INFO)
	tool = SynDirTool(srcdir,descdir)
	count += tool.synDir()

注:

1,日志会输出到SynDirTool.py文件的相同目录的SynDirTool.log文件中

2,如果目的文件夹已有该文件,且该文件较新,则不再会复制源文件夹中的文件

 

 

 

分享到:
评论

相关推荐

    Python FTP两个文件夹间的同步实例代码

    【Python FTP 文件夹同步】在Python中,FTP(File Transfer Protocol)被广泛用于在本地文件系统和远程服务器之间传输文件。本实例展示了如何利用Python实现两个文件夹间的同步,特别是针对FTP服务器的情况。同步...

    python实现两个文件夹的同步

    其实无论windows还是Linux,简单地去实现两个两个文件夹的同步只需系统自带的复制命令加参数就可以了。 WINDOWS: xcopy 源文件夹\* 目标文件夹 /s /e /y Linux: cp -r 源文件夹/* 目标文件夹 这里使用python来...

    python rsync服务器之间文件夹同步脚本

    Python rsync服务器之间文件夹同步脚本是一种自动化工具,用于在多台服务器间高效地同步文件和目录。rsync是一个强大的、高效的文件同步工具,它支持增量传输,仅同步源目录与目标目录之间的差异,从而大大减少了...

    python做的Ymodem的文件夹同步

    在给定的“python做的Ymodem的文件夹同步”项目中,开发者利用Python实现了跨网络环境的小文件单向同步功能,以应对内外网隔离的场景。这种同步方式对于确保安全性和合规性至关重要。 Ymodem是一种古老的文件传输...

    本地两个文件夹同步,python语言,linux系统通过(自己编写,可用)

    本地两个文件夹同步,新建、删除、修改、移动位置、重命名、复制目录或者文件等操作都可以实现,修改文件路径即可用,watchdog思想编写。项目设计涉及到这一块,自己通过watchdog编写了同步的代码,希望可以给大家...

    python小分段同步文件夹工具

    本脚本采用hash md5方式,分小区块,比较源文件夹和目标文件夹之前的差异并同步复制,只支持源文件夹到目标文件夹单向同步,并编写了判断键盘退出快捷键Q的子线程,提高退出时的速度。同时提供了断点断续功能,按q...

    python3利用tcp实现文件夹远程传输

    本文实例为大家分享了python实现文件夹远程传输的具体代码,供大家参考,具体内容如下 实现功能: 通过tcp协议模拟文件夹的下载,注意是文件夹,不是文件。 下面让我们实现以下: 其中有部分功能还未实现有兴趣的...

    python版分段同步复制文件夹目录工具

    本脚本采用hash md5方式,分小区块,比较源文件夹和目标文件夹之前的差异并同步复制,只支持源文件夹到目标文件夹单向同步,并编写了判断键盘退出快捷键Q的子线程,提高退出时的速度。同时提供了断点断续功能,按q...

    python检测文件夹变化,并拷贝有更新的文件到对应目录的方法

    在Python中,文件系统的操作一直以来都是开发者们常常需要面对的需求,尤其在文件备份、监控文件夹变化等场景中显得尤为重要。本文将重点介绍如何使用Python检测文件夹中的变化,并且在发现有更新的文件时,将其拷贝...

    Python实现 IEC-61850 GOOSE和SV 实现

    **正文** IEC 61850 是一个国际标准,用于电力自动化...在61850_SVGOOSE_Scapy-main文件夹中,你可以找到相关的代码示例和进一步的实现细节。通过研究这些代码,你将能够更好地理解如何将理论知识应用于实际项目中。

    使用python快速实现不同机器间文件夹共享方式

    标题中的“使用python快速实现不同机器间文件夹共享方式”是指通过Python编程语言来搭建一个简易的文件服务器,使得两台或多台计算机可以互相访问和共享文件。这种方法尤其适用于临时或者简单的需求,无需复杂的网络...

    socket tcp同步文件夹

    标题中的“socket tcp同步文件夹”指的是使用Python的socket库实现TCP协议来实现在局域网内同步文件夹的功能。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它能...

    cptool:使用 Python 同步文件夹

    综上所述, cptool 是一个利用 Python 的文件操作能力,结合上述技术实现的文件夹同步工具,旨在提供便捷的数据同步解决方案。开发者可能通过编写脚本,实现了文件的比较、复制、移动,并提供了命令行接口供用户使用...

    局域网文件夹自动同步更新

    3. **自定义脚本或程序**:对于有编程经验的用户,可以通过编写批处理脚本或使用Python、PowerShell等语言来实现自定义同步逻辑。这允许更灵活的控制,例如定时任务、条件触发等。 4. **服务器端解决方案**:例如,...

    python实现的cocos热更工具

    Cocos Creator是一款强大的2D游戏引擎,支持跨平台开发,而“Python实现的Cocos热更工具”则是为了简化Cocos Creator游戏的热更新流程而设计的。 这个工具的核心功能是生成热更列表,它遍历`src`和`res`两个关键...

    Python实现两端通信,模拟网络监控(单任务版本)

    Python作为一种功能强大的编程语言,提供了多种实现网络通信的库,如socket。本项目着重探讨如何使用Python实现UDP(用户数据报协议)通信,模拟网络监控的单任务版本。UDP是一种无连接、不可靠的传输协议,适合于对...

    Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法

    本文实例讲述了Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法。分享给大家供大家参考。具体如下: 这个东东本来是做来给公司数据同步用的:新服务器还没正式启用,旧的服务器还在使用,每天都有大量...

    python 文件同步上传

    Python 文件同步上传是一种常见的任务,尤其在开发和运维过程中,我们经常需要将本地的文件或文件夹更新到远程服务器,以便于代码部署、数据备份或者资源共享。在这个场景中,Python 提供了一些强大的库来实现这样的...

    文件夹智能同步工具源码

    标题中的“文件夹智能同步工具源码”指的是一个软件项目,其主要功能是实现文件夹之间的自动、智能同步。这个工具可能适用于用户需要保持多个文件夹内容一致的情况,例如在多台设备间同步工作文件或者备份重要数据。...

Global site tag (gtag.js) - Google Analytics