文件读取与移动
文件读取
file_a_List = glob.glob(os.path.join(file_a, '*.xml'))
for item in file_a_List:
file_a_info.append(os.path.basename(item))
file_a_info_new = os.listdir(file_a)
文件移动
shutil.copy
复制文件到新的文件夹下:
file_b
:文件夹路径
new_file_b
:新的文件夹路径
name_b
:文件名
shutil.copy(file_b + name_b, new_file_b + name_b)
shutil.move
移动(剪切)文件到新的文件夹下:
shutil.move(file_b + name_b, new_file_b + name_b)
筛选文件
前缀后缀筛选
.startswith(str)
:判断字符串的前缀是否包括str
.endswith(str)
:判断字符串的后缀是否包括str
pathDir = os.listdir(fileDir)
str = 'demo'
new_pathDir1 = []
new_pathDir2 = []
for i in pathDir:
if i.startswith(str):
new_pathDir1.append(i)
if i.endswith(str):
new_pathDir2.append(i)
文件大小筛选
pathDir = os.listdir(fileDir)
new_pathDir = []
min_size = 500
for i in pathDir:
img = cv2.imread(fileDir + i)
if img.shape[0] > min_size and img.shape[1] > min_size:
new_pathDir.append(i)
文件名对比并移动文件
- 找出文件夹A和文件夹B中命名相同的文件
- 然后移动到新的文件夹下
import glob
import os
import shutil
def main(file_a, file_b, new_file_a, new_file_b=None):
file_a_info = []
file_a_name = []
file_a_List = glob.glob(os.path.join(file_a, '*.xml'))
for item in file_a_List:
file_a_info.append(os.path.basename(item))
for item in file_a_info:
(temp1, temp2) = os.path.splitext(item)
file_a_name.append(temp1)
file_b_info = []
file_b_name = []
file_b_List = glob.glob(os.path.join(file_b, '*.jpg'))
for item in file_b_List:
file_b_info.append(os.path.basename(item))
for item in file_b_info:
(temp1, temp2) = os.path.splitext(item)
file_b_name.append(temp1)
for item_a in file_a_name:
for item_b in file_b_name:
if item_a == item_b:
name_a = file_a_info[file_a_name.index(item_a)]
shutil.move(file_a + name_a, new_file_a + name_a)
if new_file_b:
name_b = file_b_info[file_b_name.index(item_b)]
shutil.move(file_b + name_b, new_file_b + name_b)
break
print('!Move-Done!')
if __name__ == '__main__':
file_a = 'file_a/'
file_b = 'file_b/'
new_file_a = 'new_file_a/'
new_file_b = 'new_file_b/'
try:
shutil.rmtree(new_file_a)
shutil.rmtree(new_file_b)
except OSError:
pass
os.mkdir(new_file_a)
os.mkdir(new_file_b)
main(file_a, file_b, new_file_a, new_file_b)