Python txt文本内容转换

发布时间 2023-09-25 14:16:06作者: 羽小兮
# 读取原始文本内容
with open("input.txt", "r") as file:
    lines = file.readlines()

output_lines = []

# 处理每一行数据
for line in lines:
    values = line.strip().split("\t")

    # 判断第一个值是否已存在于结果列表中
    if values[0] in [line.split("\t")[0] for line in output_lines]:
        # 如果已经出现过,则直接追加剩余的值到之前出现的行数据的后面
        for i, line in enumerate(output_lines):
            if line.startswith(values[0]):
                output_lines[i] = line.strip() + "\t" + "\t".join(values[1:])
                break
    else:
        # 如果是第一次出现,则将整行数据添加到结果列表中
        output_lines.append(line.strip())
        
# 去掉空行
output_lines = [line for line in output_lines if line != ""]

# 写入输出结果到文件
with open("output.txt", "w") as file:
    file.write("\n".join(output_lines))

源txt文本数据:

5.0	4.39	1.62
4.5	4.39	1.62
4.0	4.39	1.62
3.5	4.39	1.62
3.0	4.39	1.62
2.9	4.39	1.62
2.8	4.39	1.62
2.7	4.39	1.62
2.6	4.39	1.62
2.5	4.39	1.62
2.4	4.39	1.62
2.3	4.39	1.62
2.2	4.39	1.62
2.1	4.39	1.62
2.0	4.39	1.62
1.9	4.39	1.62
1.8	0    	1.72
1.7	0.00	1.70
1.6	0.00	1.60
1.5	0.00	1.50
1.4	0.00	1.40
1.3	0.00	1.30
1.2	0.00	1.20
1.1	0.00	1.10
1.0	0.00	1.00
5.0	4.39	1.63
4.5	4.39	1.63
4.0	4.39	1.63
3.5	4.39	1.63
3.0	4.39	1.63
2.9	4.39	1.63
2.8	4.39	1.63
2.7	4.39	1.63
2.6	4.39	1.63
2.5	4.39	1.63
2.4	4.39	1.63
2.3	4.39	1.63
2.2	4.39	1.63
2.1	4.39	1.63
2.0	4.39	1.63
1.9	4.39	1.63
1.8	0.00	1.75
1.7	0.00	1.70
1.6	0.00	1.60
1.5	0.00	1.50
1.4	0.00	1.40
1.3	0.00	1.30
1.2	0.00	1.20
1.1	0.00	1.10
1.0	0.00	1.00
..............

运行以上代码后,将会生成一个转换后的文件 "output.txt",其中的内容如下所示:

5.0	4.39	1.62	4.39	1.62	4.39	1.63	4.39	1.63	4.39	1.64	4.40	1.64	4.40	1.61	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63	
4.5	4.39	1.62	4.39	1.62	4.39	1.63	4.39	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
4.0	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.39	1.62	4.40	1.62	4.40	1.63
3.5	4.39	1.62	4.39	1.62	4.39	1.63	4.39	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
3.0	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
2.9	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.64
2.8	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
2.7	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
2.6	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
2.5	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
2.4	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.39	1.62	4.40	1.62	4.40	1.63
2.3	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.64
2.2	4.39	1.62	4.39	1.62	4.39	1.63	4.39	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.64
2.1	4.39	1.62	4.39	1.62	4.39	1.63	4.40	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.64
2.0	4.39	1.62	4.39	1.62	4.39	1.63	4.39	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.64
1.9	4.39	1.62	4.39	1.62	4.39	1.63	4.39	1.63	4.39	1.64	4.40	1.64	4.40	1.62	4.40	1.63	4.40	1.62	4.40	1.62	4.40	1.63
1.8	0	    1.72	0    	1.72	0.00	1.75	0.00	1.75	0.00	1.71	0.00	1.73	0.00	1.74	0.00	1.73	0.00	1.72	0.00	1.72	0.00	1.72
1.7	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70	0.00	1.70
1.6	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60	0.00	1.60
1.5	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50	0.00	1.50
1.4	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40	0.00	1.40
1.3	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30	0.00	1.30
1.2	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20	0.00	1.20
1.1	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10	0.00	1.10
1.0	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00	0.00	1.00

在这个例子中,只有第一列数据出现了一次,后面的数据被追加到之前出现的行数据的后面。如果某个值已经在之前的行数据中出现过,则将剩余的值追加到该行数据的末尾。请根据实际情况修改文件名和路径,并根据需要对代码进行调整。