'''
[2021.12.03 by navy]dest目录不可存在于souce重名的文件/文件夹,否则会报错
[2021.12.05 by navy]os.path.join后面参数不可含有'\',否则会把前面的参数覆盖掉,造成异常
'''
import shutil,os
def test01():
? ? for curDir, dirs, files in os.walk(source):
? ? ? ? print("=====test01=====")
? ? ? ? if curDir == source:
? ? ? ? ? ? print('当前目录为source根目录,跳过判断')
? ? ? ? else:
? ? ? ? ? ? print('当前目录不是source根目录:' + curDir)
? ? ? ? a = curDir.split(source)
? ? ? ? if a[1][0:1] == '\\':
? ? ? ? ? ? a = (a[1][1:])
? ? ? ? else:
? ? ? ? ? ? a = ''
? ? ? ? if dirs:
? ? ? ? ? ? for sub_dir in dirs:
? ? ? ? ? ? ? ? #print('navy --> ' + os.path.join(dest,str(a),str(sub_dir)))
? ? ? ? ? ? ? ? if os.path.exists(os.path.join(dest,str(a),str(sub_dir))):
? ? ? ? ? ? ? ? ? ? print(os.path.join(dest,str(a),str(sub_dir)) + ' exists')
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? print(os.path.join(dest,str(a),str(sub_dir)) + ' not exists')
? ? ? ? ? ? ? ? ? ? try:
? ? ? ? ? ? ? ? ? ? ? ? print('Moving to ' + os.path.join(dest,str(a),str(sub_dir)))
? ? ? ? ? ? ? ? ? ? ? ? m_res = shutil.move(os.path.join(source,str(a),sub_dir),os.path.join(dest,str(a),str(sub_dir)))
? ? ? ? ? ? ? ? ? ? except shutil.Error as e:
? ? ? ? ? ? ? ? ? ? ? ? print(e)
? ? ? ? if files:
? ? ? ? ? ? for file in files:
? ? ? ? ? ? ? ? if os.path.exists(os.path.join(dest,str(a),file)):
? ? ? ? ? ? ? ? ? ? print(os.path.join(dest,str(a),file) + ' exists')
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? print(os.path.join(dest,str(a),file) + ' not exists')
? ? ? ? ? ? ? ? ? ? try:
? ? ? ? ? ? ? ? ? ? ? ? print('Moving to ' + os.path.join(dest,str(a),file))
? ? ? ? ? ? ? ? ? ? ? ? #print(os.path.join(source,curDir.split(source)[1],file))
? ? ? ? ? ? ? ? ? ? ? ? #print(source,curDir.split(source)[1],file)
? ? ? ? ? ? ? ? ? ? ? ? m_res = shutil.move(os.path.join(source,str(a),file),os.path.join(dest,str(a),file))
? ? ? ? ? ? ? ? ? ? except shutil.Error as e:
? ? ? ? ? ? ? ? ? ? ? ? print(e)
? ??
def only_files():
? ??
? ? for curDir, dirs, files in os.walk(source):
? ? ? ? print("=====file only=====")
? ? ? ? if files:
? ? ? ? ? ? #print("现在的目录:" + curDir)
? ? ? ? ? ? #print("该目录下包含的文件:"+ str(files))
? ? ? ? ? ? for file in files:
? ? ? ? ? ? ? ? file_full_path = os.path.join(curDir,file)
? ? ? ? ? ? ? ? print(file_full_path)
? ? ? ? ? ? ? ? try:
? ? ? ? ? ? ? ? ? ? cc = shutil.move(file_full_path,dest)
? ? ? ? ? ? ? ? except shutil.Error as e:
? ? ? ? ? ? ? ? ? ? print(e)
source = r'C:\Users\Administrator\Desktop\source'
dest = r'C:\Users\Administrator\Desktop\dest'
for curDir, dirs, files in os.walk(source):
? ? print("====================")
? ? print("现在的目录:" + curDir)
? ? print("该目录下包含的子目录:" + str(dirs))
? ? print("该目录下包含的文件:" + str(files))
test01()
|