'''
[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()
python_move_v1.3
最新推荐文章于 2024-08-19 17:55:19 发布