筛图的时候可能会出现误操作情况,比如:
- 移动图片位置错误(可能增加/减少图片数量)
- 按住shift删除图片(永久删除不进入回收站)
丢失图片
R&D给的图片格式有 *jpg *jpeg *png *bmp
获取文件名(两种方法)
- 在目录文件 打开notepad输入下列文字
tree /f >text_dir.txt
- 代码提取
- listdir 提取 该目录下 所有文件
# -*- coding: utf-8 -*-
import os
def list_text(file,dir):
dirs = os.listdir(dir)
for filename in dirs:
file.write(filename + "\n")
def text():
#输出到的目录
outfile = r'C:\Users\Desktop\list_dir.txt'
file = open(outfile,'w')
if not file:
print('%s cannot open ' % outfile)
list_text(file,dir)
file.close()
if __name__ == '__main__':
#更改 图片所在目录 的地址
dir = r'D:\0数据任务'
text()
- listdir 提取 该目录下 指定格式文件
# -*- coding: utf-8 -*-
import os
def get_file(root_path,suffix):
for dir_name in os.listdir(root_path):
exts = suffix.split(' ')
#获取目录或文件的路径
file_path = os.path.join(root_path,dir_name)
#判断路径为文件还是路径
if os.path.isdir(file_path):
#递归获取所有文件和目录的路径
get_file(file_path,suffix)
else:
for ext in exts:
#根据后缀名判断文件类别
if(dir_name.endswith(ext)):
file.write(dir_name + '\n')
if __name__ == "__main__":
root_path = r'D:\0数据任务'
suffix = '.jpg .jpeg'
outfile = r"C:\Users\Desktop\list_dir.txt"
file = open(outfile,'w')
get_file(root_path,suffix)
file.close()
-
walk 提取 该目录下 指定格式文件
这里用到的是os.walk()
函数声明:walk(top,topdown=True,onerror=None)
-
补充:
os.path.walk(top, func, arg)
top
:表示需要遍历的目录树的路径
func
:表示回调函数,对遍历路径进行处理的函数。所谓回调函数,是作为某个函数的的参数使用,当某个时间触发时,程序将调用定义好的回调函数处理某个任务。该回调函数必须提供3个参数:第1个参数为walk()的参数arg,第2个参数表示目录列表dirname,第3个参数表示文件列表names。
arg
:是传递给回调函数func的元组,为回调函数提供处理参数,回调函数的第一个参数就是用来接收这个传入的元组的,参数arg可以为空)
参考
import os
def get_file(root_path,suffix):
#下面这三行也可以不写
dir_list = os.listdir(root_path)
for dir_name in dir_list:
dir_path = os.path.join(root_path,dir_name)
for root,dirs,files in os.walk(dir_path):
for name in files:
exts = suffix.split(' ')
for ext in exts:
#根据后缀名判断文件类别
if(name.endswith(ext)):
file.write(name + '\n')
break
if __name__ == "__main__":
root_path = r'D:\0数据任务'
suffix = '.jpg .jpeg'
outfile = r"C:\Users\Desktop\list_dir.txt"
file = open(outfile,'w')
get_file(root_path,suffix)
file.close()
Excel也可以批量提取文件名
https://baijiahao.baidu.com/s?id=1621825565528118740&wfr=spider&for=pc
筛选时尽量使WPS,Office里的Excel可能会有卡顿
分别提取 base数据文件夹 和 done数据文件 文件目录
将两个 .txt 文件 里面的内容复制到 Excel表 里
条件格式——突出显示单元格规则——重复
筛选——颜色筛选——空
重复图片
举例keep-other聚合 (每个品类图片数量较大,比如:白酒、红酒,需要两个人协同完成,因为公用一个keep集合,会出现重复情况)
获取文件名(两种方法)
提取 done数据文件夹 文件目录
将 .txt 文件 里面的内容复制到 Excel表 里
条件格式——突出显示单元格规则——重复
筛选——颜色筛选——空
反思
当你多次调用 os.path.join()
时,这种方式操作文件系统就会变得很笨重。
for file in os.listdir(dir):
print(file)
如果你还想获取文件和目录属性(如文件大小和修改日期),那么 os.scandir()
则是首选的方法。
with os.scandir(dir) as files:
for file in files:
if file.is_file:
print(file.name)