可以使用正则表达式来实现这个需求。具体的操作步骤如下:

  1. 读取txt文件中每一行的数据
  2. 使用正则表达式匹配出~#到:中的数字和:后面的数据
  3. 如果数字已经存在于之前的数据中,则将:后面的数据添加到原有数据的后面
  4. 如果数字不存在,则将当前行的数据添加到结果列表中

下面是Python代码实现:

import re

读取txt文件中的数据

with open('data.txt', 'r') as f: lines = f.readlines()

result = [] for line in lines: # 使用正则表达式匹配出数字和后面的数据 match = re.search(r'~#(\d+):(.+)#~', line) if match: num = match.group(1) data = match.group(2) # 查找之前是否已经存在相同的数字 found = False for i in range(len(result)): if result[i][0] == num: result[i][1] += ',' + data found = True break if not found: result.append([num, data])

输出结果

for r in result: print('['{}','.format(r[0]), r[1], ']')

请问一个txt文件里面是这样~#10780210#~~#10510212#~~#107747101#~~#110946173#~~#10823114#~~#108227107#~~#10821413#~~#107802206#~~#108248154#~~#105102192#~~#107859154#~要求~#到中的数字为一样的话就把后面的数据添加到原有数据的后面形成一行最后处理成类似与这个10

原文地址: https://www.cveoy.top/t/topic/bEf6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录