本来想用os.listdir遍历的,但发现用os.walk更好,通过内置遍历可以直接获得最底层的所有文件,简单粗暴我喜欢,以后如果有多层遍历的话就用os.walk了
import os
import shutil
new_filedir = r'E:\picture'
# #快速获得文件夹内所有文件名和路径:
# list1 = [x for x in os.listdir(new_filedir)] #这里获得的只是文件名
# list2 = [x for x in os.listdir(new_filedir) if os.path.splitext(x)[1]=='.jpg' or '.JPG']
# print(list2)
# for file in list1:
# print(os.path.join(new_filedir,file)) #这里获得的是标准路径
#创建新文件夹
try:
os.makedirs(new_filedir)
except:
pass
#遍历文件夹内的所有文件(包含子文件夹内的文件),剪切文件到新的文件夹内
for root, dirs, files in os.walk(r'E:\picture'):
for file in files:
# if file.find('.JPG') > 0 or file.find('.MOV') > 0:
# if os.path.splitext(file)[1]=='.jpg' or '.mov':
try:
shutil.move(os.path.join(root,file), new_filedir) #如果是复制就用shutil.copy
except:
continue
#
# #判断是文件夹还是文件
# if os.path.isdir(new_filedir): #如果判断是否问文件就是os.path.isfile