在 Python 中的 YOLO .txt 文件中查找特定的 class 数字

Find particular class number in YOLO .txt file in Python

我有包含 .txt 文件的 YOLO 注释文件夹。我的文件内容如下:

0 0.552344 0.479630 0.707812 0.824074
1 0.722587 0.816280 0.125074 0.070182
46 0.677865 0.821296 0.014063 0.037037
49 0.690885 0.820370 0.013021 0.035185
74 0.704688 0.819907 0.012500 0.036111

第一列是 class 数字。

我尝试了

中提到的以下代码
import os
files = []

for i in os.listdir("C:\Users\blackshine\Dataset_All_Training\zTt"):
    if i.endswith('.txt'):
        files.append(i)

for item in files:
    file_data = []

    with open(item, 'r') as myfile:
        for line in myfile:
            currentLine = line[:-1]
            data = currentLine.split(" ")
            file_data.append(data)
            #print(file_data)

但是,我在读取文件内容时遇到以下错误:

(tfgpu_2) C:\Users\blackshine\Dataset_All_Training>python yoloCheck.py
Traceback (most recent call last):
  File "yoloCheck.py", line 54, in <module>
    with open(item, 'r') as myfile:
FileNotFoundError: [Errno 2] No such file or directory: '0.txt'

我在该文件夹中有文件。 Image for files in the folder

此外,我想制作一个检查列的程序,并显示包含 class 数字大于 74 的文件的名称。 请帮我解决这个问题。

确保您的 txt 文件和 python 文件位于 zTt 文件夹中。 我创建了一个名为 fileFind.

的函数
import os
def fileFind():
    files = []
    for i in os.listdir("../zTt"):
        if i.endswith('.txt'):
            files.append(i)
    for item in files:

        file_data = []
        temp = []


        with open(item, 'r') as myFile:
            for line in myFile:
                currentLine = line[:-1]
                data = currentLine.split(" ")
              
                for i in data:
                    if i.isdigit():
                        temp = float(i)
                        i = str(int(temp))
                        num: int = int(i)
                        if num > 74:
                            print(item)
fileFind()

希望对您有所帮助。