import os import csv # 定义文件夹路径和Excel文件路径 folder_path = 'labels' # 替换为包含txt文件的文件夹路径 excel_file = 'output.csv' # 替换为输出的Excel文件路径 # 创建一个CSV文件并打开 with open(excel_file, 'w', newline='') as csvfile: writer = csv.writer(csvfile) # 写入表头 writer.writerow(['First Number', 'Line Count', 'Sixth Number']) # 遍历文件夹中的txt文件 for file_name in os.listdir(folder_path): if file_name.endswith('.txt'): file_path = os.path.join(folder_path, file_name) with open(file_path, 'r') as file: lines = file.readlines() col1 = float(lines[0].split()[0]) # 获取第一个数并转换为浮点型 col2 = len(lines) # 获取行数 col3 = float(lines[0].split()[5]) # 获取每行的第六个数并转换为浮点型 # 将数据写入CSV文件的相应位置 writer.writerow([col1, col2, col3]) 在这段代码中为表格加入表头,第一列表头名为Id,第二列表头为class,第三列表头为number of classes,第四列表头为conf,第五列表头为result,将txt文件的个数从1到最后排序,将序号放在excel文件的第一列
时间: 2024-04-10 20:33:00 浏览: 139
你可以在代码中添加以下内容来实现你的需求:
```python
# 修改表头
writer.writerow(['Id', 'class', 'number of classes', 'conf', ''])
# 获取文件夹中的txt并排序
txt_files = sorted([f for f in os.listdir(folder_path) if f.endswith('.txt')])
# 遍历排序后的txt文件
for i, file_name in enumerate(txt_files, start=1):
file_path = os.path.join(folder_path, file_name)
with open(file_path, 'r') as file:
lines = file.readlines()
col1 = i # 序号
col2 = lines[0].split()[0] # 第一个数
col3 = len(lines) # 行数
col4 = lines[0].split()[4] # 第五个数
col5 = lines[0].split()[5] # 第六个数
# 将数据写入CSV文件的相应位置
writer.writerow([col1, col2, col3, col4, col5])
```
这样,代码将按照txt文件的顺序依次将序号、第一个数、行数、第五个数和第六个数写入Excel文件的每一行。请注意,我将第二列表头名为"class"改为小写,因为在Python中"class"是一个关键字。如果你想保留大写的"class"作为列表头,请将其改为其他名称,例如"Class"。
阅读全文