今天用我们的标注工具做预标注处理,从约4.7万张图(文件夹a)中抽出约2.4万的空白标注文件(文件夹b),也就是说,文件夹b中的每一个都在a里面,a里面约有2.3万张图不在b里面。然后就想写段代码把a中不在b里面的这2.3万张图抽取出来。图片较大数量较多,用复制粘贴剪切往往要卡住。
代码如下,记住,代码要跟a,b文件夹在同一目录下:
import os
import shutil
# 较小文件名列表
file_names = os.listdir('./b')
# 进入要删除文件(较大)的父目录文件夹内
os.chdir('./a')
# 遍历文件名列表并删除每个文件
for file_name in file_names:
try:
# 删除文件
os.remove(file_name)
print(f"File {file_name} deleted successfully.")
except OSError as e:
print(f"Error: {file_name} : {e.strerror}")
上面代码来自文心一言,后面自己改写了下:
import os
os.chdir('./a')
for s in os.listdir('../a'):
if s in os.listdir('../b'):
os.remove(s)
print(f'{s}在b里面,已从a中删除')