python批量移动指定文件夹到新的指定位置

python批量移动指定文件夹到新的指定位置

  • 代码如下

代码如下

  • 根文件夹./
    • 子文件夹 axxx bxxx …
      • 子子文件夹 axxx(a(1)-a(18)) bxxx(b(1)-b(21))
        • 子子子文件夹 a(i)(c_xxx) b(i)(d_xxx)
import shutil, os#导入相关包

for folders in os.listdir('./'):#遍历当前问价夹下的所有子文件夹
    if folders[0: 1] == 'a':#检索子文件夹的首个字段是否与a匹配
        for i in range(1, 18):#18个子文件夹
            for subfolders in os.listdir('./axxx' + '/' + 'a' + ' ' + '(' + str(i) + ')'):
                if subfolders[0 : 2] == 'c_':#匹配子子子文件夹的前两个字符
                    try:
                        shutil.move('./axxx' + '/' + 'a' + ' ' + '(' + str(i) + ')' + '/' + subfolders, './' + './new_axxx')#shutil.move('old/old_dir', 'new/new_dir')
                    except OSError:
                        pass
    elif folders[0: 1] == 'b':
    	for i in range(1, 22):#bxxx子文件夹有21子文件夹
            for subfolders in os.listdir('./bxxx' + '/' + 'b' + ' ' + '(' + str(i) + ')'):
                if subfolders[0 : 2] == 'd_':
                    try:
                        shutil.move('./bxxx' + '/' + 'a' + ' ' + '(' + str(i) + ')' + '/' + subfolders, './' + './new_bxxx')
                    except OSError:
                        pass
    else:
    	print('not matching dir')
print('moving Successfully!')

注:使用该脚本时,需要先在对应子子子文件夹新建一个空的以c/d命名的文件夹,否则执行过程中会将首次读取文件夹的文件直接提取出来然后将首文件夹的文件进行移动到新位置,这里还有待调整

你可能感兴趣的:(脚本)