Pythonを使用して、WindowsまたはLinuxのフォルダーで指定されたファイルをバッチ削除します

  • 状況説明:フォルダの下に削除する必要のあるファイルが数十または数百ある場合、特にLinuxでは、1つずつ選択するのに時間と労力がかかります。したがって、ファイルをまとめて削除する必要があります。

    トレーニングサンプル(画像)とテストサンプル(画像)を評価するときは、それがデータ自体の問題なのか、独自のモデルの問題なのかを確認する必要があります。したがって、誤分類されているサンプル(画像)を選択する必要があります。問題がラベル自体にあるのか、モデルが十分にトレーニングされていないのかを確認してください。サンプル自体に問題がある場合は、間違ったサンプルを削除する必要があります。

    3Wの複数のトレーニングサンプルの中で、400を超える誤ってラベル付けされたデータがクエリされ、データセットから削除する必要があります。
   

    削除するファイルのパスをtxtに入れ、PythonのOSを使用してファイルを読み取り、txtに保存します。次に、os.remove()を使用して、読み取りパスが指すファイルを削除します。

    Windowsでサンプルを見るのは便利なので、Windowsではファイルの相対パスをtxtに書き込みます。これが最初のコードです。

    次に、Linuxサーバーで、ファイルをバッチで削除するためのコードを実行します。これは2番目のコードです。(したがって、このコードをコピーするときは、パスの問題に注意する必要があります!!!)

    

 

  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