内容涉及:关键字定位,列表去重复,路径组装,文件夹创建,文件拷贝,字符串分割

list.txt的内容为包含关键字的文件路径,如:关键字 ’181‘

org/20190523/1/2019052320196231816923IMG039x030.JPG_n_1_1375_220_1475_320.png
org/20190523/7/2019052320196171812302IMG007x030.JPG_p_7_287_191_387_291.png
... ...

import os
import numpy as np
import re
from shutil import copyfile def getlist(path,name):
listall = []
for n in open(path):
location = re.search(name, n) #定位关键字
bingli_Id = n[location.start():location.start()+7] #找到关键字后面7位长度字符
listall.append(bingli_Id) #添加到列表中
return set(listall) #去除重复内容 def mkdir(file1, bingId): #建立文件夹
if not os.path.exists(file1):
os.mkdir(file1) #建立一级目录
for n in bingId:
path = os.path.join(file1, n)
path_1 = os.path.join(path, str(1)) #组装三级目录,此时我知道三级目录的内容,所以直接设置了常量
path_7 = os.path.join(path, str(7))
if not os.path.exists(path): #建立目录
os.mkdir(path)
if not os.path.exists(path_1):
os.mkdir(path_1)
if not os.path.exists(path_7):
os.mkdir(path_7) def copytoflods(path_all_list, name, file1):
for n in open(path_all_list):
location = re.search(name, n)
bingId = n[location.start():location.start()+7]
arr = n.split('_') #以‘_’分割字符串
type_ = arr[2] # 取第3个元素
root = os.path.join(file1, bingId, type_, arr[0][-20:]+ '.png') #组装文件路径
copyfile(n[:-1], root) #n[:-1]:便捷地去除换行符号 if __name__ == '__main__':
listall = getlist('./list.txt','181') #第一个参数为需要处理的文件路径列表, 181为关键字
mkdir('dataset', listall)
copytoflods('./list.txt','181', 'dataset') #dataset为一级目录名

  

最新文章

  1. SecondaryNameNode的工作流程
  2. Leetcode: Valid Word Abbreviation
  3. 用SQL语句添加删除修改字段_常用SQL
  4. easyui1.3.2中使用1.3.6或1.4.x的calendar
  5. Microsoft SharePoint Server 2013 Service Pack 1 (sp1)终于出来了!!!
  6. TTL
  7. Java学习笔记(二十)——Java 散列表_算法内容
  8. centos磁盘爆满,查找大文件并清理
  9. 使用maphilight高亮显示map的指定area
  10. ubuntu全盘备份与恢复
  11. python之PIL安装问题
  12. Unity 利用Coroutine实现跳动数字效果
  13. Android 测试工具集01
  14. 利用PowerDesigner15在win7系统下对MySQL 进行反向project(二)
  15. 利用Unity3D与Oculus实现机器情绪安抚师的一种方案
  16. 教你在Java接口中定义方法
  17. HDU 4825 Xor sum
  18. 文件上传控件bootstrap-fileinput的使用
  19. 转载 linux基本操作
  20. 【深入Java虚拟机】之一:Java内存模型

热门文章

  1. Chisel3 - util - Mux
  2. html css javascript实现弹弹球
  3. Java实现 蓝桥杯VIP 算法训练 采油区域
  4. Java实现 LeetCode 106 从中序与后序遍历序列构造二叉树
  5. Java实现 洛谷 P1009 阶乘之和
  6. C语言深入理解通过指针引用多维数组(指针中使用起始地址 元素地址 元素值的区分)
  7. java实现棋盘上的麦子
  8. java实现第二届蓝桥杯异或加密法
  9. java实现第四届蓝桥杯有理数类
  10. OV2640读ID全是FF问题