# 统计结果
import numpy as np
import os
from glob import glob
from pathlib import Path
from multiprocessing import Pool
import argparse
import shutil

def find_txt_files_pathlib(directory):
    """
    使用pathlib.Path.rglob递归查找指定目录下所有.tif和.tiff文件
    参数:
        directory (str): 要搜索的根目录路径
    返回:
        list: 包含所有找到的.tif/.tiff文件完整路径的列表
    """
    path = Path(directory)
    # 使用rglob递归匹配所有.tif和.tiff文件
    tif_files = list(path.rglob('*.txt'))
    # 将Path对象转换为字符串路径
    return [str(file) for file in tif_files]

def statictNumber(inlabelfilepath):
    with open(inlabelfilepath,"r",encoding="utf-8") as f:
        lines = f.readlines()
    lineresult=[]
    for l in lines:
        if len(l) > 10:
            lineresult.append(l)
    return len(lineresult)


def FilterLabelEmptyFile(inlabelfilepath,outlabelfolder):
    labelfilepaths=find_txt_files_pathlib(inlabelfolder)
    for labelfilepath in labelfilepaths:
        rootname=Path(labelfilepath).stem

        tiffname=os.path.splitext(labelfilepath)[0]+".tiff"
        pngname = os.path.splitext(labelfilepath)[0] + ".png"

        labelnum=statictNumber(labelfilepath)
        if(labelnum>=1):
            outPath=os.path.join(outlabelfolder,rootname+".txt")
            outPath2 = os.path.join(outlabelfolder, rootname + ".tiff")
            outPath3 = os.path.join(outlabelfolder, rootname + ".png")

            shutil.copy(labelfilepath,outPath)

            # shutil.move(labelfilepath,outPath)
            # if not os.path.exists(tiffname):
            #     continue
            # shutil.move(tiffname, outPath2)
            # shutil.copy(tiffname, outPath2)
            # shutil.move(pngname, outPath3)
            # shutil.copy(pngname, outPath3)





def getParams():
    parser = argparse.ArgumentParser()
    parser.add_argument('-i','--inlabelfolder',type=str,default=r'R:\TYSAR-德清院\TYSAR-条带模式(SM)\港口\20250910-不分类\C-人工检查\BB-202509190345-s3-祝鑫良 part1', help='输入tiff的bin文件')
    parser.add_argument('-o', '--outlabelfolder',type=str,default=r'R:\TYSAR-德清院\TYSAR-条带模式(SM)\港口\20250910-不分类\C-人工检查\删除空标注\S3', help='切片文件夹地址')
    args = parser.parse_args()
    return args


if __name__ == '__main__':
    args = getParams()
    inlabelfolder = args.inlabelfolder
    outlabelfolder = args.outlabelfolder
    print('inlabelfolder:', inlabelfolder)
    print('outcsvpath:', outlabelfolder)
    FilterLabelEmptyFile(inlabelfolder,outlabelfolder)


