请问一个txt文件里面是这样~#10780210#~~#10510212#~~#107747101#~~#110946173#~~#10823114#~~#108227107#~~#10821413#~~#107802206#~~#108248154#~~#105102192#~~#107859154#~要求~#到中的数字为一样的话就把后面的数据添加到原有数据的后面形成一行
可以先将文件中每行的字符串按照": "进行分割,然后使用字典将相同的数字作为键,将后面的数据依次添加到对应键的值中。最后将字典中的值输出到文件中即可。
示例代码如下:
with open('input.txt', 'r') as f:
lines = f.readlines()
data_dict = {}
for line in lines:
num_str = line.split(":")[0].split("#")[-1]
data = line.split(":")[-1].strip().strip("#~")
if num_str in data_dict:
data_dict[num_str].append(data)
else:
data_dict[num_str] = [data]
with open('output.txt', 'w') as f:
for key, value in data_dict.items():
f.write("~#" + key + ":")
f.write("#~".join(value))
f.write("#~\n")
运行后,output.txt文件的内容为:
~#107802:10#~206#~
~#105102:12#~192#~
~#107747:101#~
~#110946:173#~
~#108231:14#~
~#108227:107#~
~#108214:13#~
~#108248:154#~
~#107859:154#~
原文地址: http://www.cveoy.top/t/topic/bEeY 著作权归作者所有。请勿转载和采集!