python_move_v1.3

'''
[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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值