import os
import time
import shutil
import pickle as p
def check_data_file(data_file):
if not os.path.exists(data_file):
os.mknod(data_file)
data_list = []
with open(data_file, 'wb') as fobj:
p.dump(data_list, fobj)
def check_file():
new_list = []
with open(DATA_FILE, 'rb') as fobj:
data_list = p.load(fobj)
for path, foders, files in os.walk(SRC_DIR):
for each_file in files:
file = os.path.join(SRC_DIR, each_file)
if file not in data_list:
new_list.append(file)
with open(DATA_FILE, 'wb') as fobj:
p.dump(data_list + new_list, fobj)
return new_list
def cp_file(new_file_list):
for file in new_file_list:
shutil.copy(file, DST_DIR)
if __name__ == '__main__':
SRC_DIR = '/root/%s' % time.strftime('%Y%m%d')
DST_DIR = '/tmp/%s' % time.strftime('%Y%m%d')
if not os.path.exists(DST_DIR):
os.mkdir(DST_DIR)
DATA_FILE = os.path.join(DST_DIR, 'data_file')
check_data_file(DATA_FILE)
new_file_list = check_file()
cp_file(new_file_list)
场景:从A目录,同步数据到B目录,文件只同步一次,已同步的忽略。