如何将gt.txt文件转换为指定格式的labels.csv文件?
将gt.txt转换为labels.csv的方法
首先假设你的gt.txt每行格式为文件名 + 空格/制表符 + 对应文本内容(比如img_001.jpg 这是一段文本),以下是几种可行的转换方法:
方法一:Python脚本(通用跨平台)
适合有基础编程能力的用户,能灵活处理各种格式细节:
import csv # 读取gt.txt并写入labels.csv with open('gt.txt', 'r', encoding='utf-8') as txt_file, open('labels.csv', 'w', encoding='utf-8', newline='') as csv_file: writer = csv.writer(csv_file) # 写入表头 writer.writerow(['filename', 'words']) for line in txt_file: line = line.strip() if not line: continue # 分割文件名和文本(假设文件名不含空格,只分割一次) parts = line.split(maxsplit=1) if len(parts) == 2: filename, words = parts writer.writerow([filename, words]) else: # 处理异常行(比如只有文件名没有文本) writer.writerow([parts[0], ''])
运行脚本后,同目录下会生成符合要求的labels.csv。如果你的gt.txt是用制表符分隔的,把split(maxsplit=1)改成split('\t', maxsplit=1)即可。
方法二:命令行工具(Linux/macOS/WSL)
适合熟悉命令行的用户,无需编写脚本:
# 先写入表头 echo "filename,words" > labels.csv # 处理每行内容并追加到csv awk -v OFS="," '{print $1, substr($0, index($0,$2))}' gt.txt >> labels.csv
这个命令会自动将每行的第一个字段作为filename,剩下的所有内容作为words,并以逗号分隔写入csv。如果是制表符分隔的gt.txt,可以用awk -F '\t' -v OFS="," '{print $1,$2}' gt.txt。
方法三:Excel手动处理(无代码基础)
- 用Excel打开
gt.txt,在弹出的文本导入向导中选择「分隔符号」,下一步选择「空格」或「制表符」作为分隔符,完成导入。 - 插入第一行,输入表头
filename和words。 - 点击「文件」→「另存为」,选择保存类型为「CSV(逗号分隔)(*.csv)」,编码选择UTF-8避免乱码。
内容的提问来源于stack exchange,提问作者Khawar Islam
相关产品推荐
相关产品推荐

