Python을 사용하여 Windows 또는 Linux에서 폴더에 지정된 파일을 일괄 삭제

  • 상황 설명 : 삭제해야 할 폴더 아래에 수십 또는 수백 개의 파일이있는 경우, 특히 Linux에서 하나씩 선택하는 데 시간과 노력이 필요합니다. 따라서 일괄 적으로 파일을 삭제해야합니다.

    학습 샘플 (이미지)과 테스트 샘플 (이미지)을 평가할 때는 데이터 자체의 문제인지 자체 모델의 문제인지 확인해야합니다. 따라서 오 분류 된 샘플 (이미지)을 선택해야합니다. 문제가 라벨 ​​자체인지 또는 모델이 잘 훈련되지 않았는지 확인합니다. 샘플 자체에 문제가있는 경우 잘못된 샘플을 삭제해야합니다.

    3W 다중 훈련 샘플 중 400 개 이상의 잘못 레이블이 지정된 데이터가 쿼리되었으며 데이터 세트에서 삭제해야합니다.
   

    삭제할 파일의 경로를 txt에 넣고 Python의 os를 사용하여 파일을 읽고 txt에 저장합니다. 그런 다음 os.remove ()를 사용하여 읽기 경로가 가리키는 파일을 삭제하십시오.

    Windows에서 샘플을 보는 것이 편리하기 때문에 Windows에서 파일의 상대 경로를 txt에 작성합니다. 첫 번째 코드는 다음과 같습니다.

    그런 다음 Linux 서버에서 일괄 적으로 파일을 삭제하는 코드를 실행하면 두 번째 코드입니다. (따라서이 코드를 복사 할 때 경로 문제에주의해야합니다 !!!)

    

 

  1. 먼저 잘못된 파일을 선택하고 폴더의 data_reduce.txt 아래에 넣으십시오.
    import os
    from os import listdir
    # 错误文件放在reduce下面。
    anchor_dir='E:/WrongData/reduce/'
    anchor_files = [t for t in listdir(anchor_dir)]
    i=0
    #在wrongdata文件夹下面创建一个txt,保存错误文件的名字。
    with open('E:/WrongData/data_reduce.txt','w') as f:
        for f1 in anchor_files:
            path1 = anchor_dir+f1+'\n'
            print(path1)
            #设置文件对象
            f.write(path1)
            i +=1
        print(i)
  2. data_reduce.txt에서 파일 경로를 읽은 다음 os.remove ()를 사용하여 이러한 파일을 삭제하십시오.
    import os
    data_dir = "E:/train/4_classes/"
    file_handle=open('E:/WrongData/data_reduce_4.txt',mode='r')
    all_line = file_handle.readlines()
    for line in all_line:
        image_path=line
        print(image_path)
        # 需要去掉路径最后的换行符号。'\n'
        os.remove(image_path.strip('\n'))
    print("remove ok!")

 

추천

출처blog.csdn.net/qq_32998593/article/details/87981162