在txt文档(测试数据)中某一列名(20211019_A1_101A),希望按照"_"提取其中的一部分(A1),同时在最后新加以列,将提出来的字符作为新的列名,原来列任然保留。
1条回答 默认 最新
YirongChen 2022-01-19 03:14关注这是典型的字符串的正则表达式操作,实现如下:
如果觉得有帮助,请采纳,谢谢!
import re # 定义读取文件的函数, def read_file_to_list(file_path='old_list.txt'): '''file_path: txt文件路径 ''' file=open(file_path,mode='r',encoding='UTF-8') file_list=[] contents = file.readlines() for msg in contents: msg = msg.strip('\n') adm = msg.split(' ') file_list.append(adm) return file_list # 将txt文件读为列表,格式如下: list1 = read_file_to_list(file_path='old_list.txt') print("读取文件并且转化为列表:",list1) # 定义提取子字符串构建新的列表函数 def create_new_column(file_list, column): '''file_list: txt转化为列表形式,如下所示: [["20211019_A1_101A", "其他内容"], ["20211019_B1_111A", "其他内容"], ["20211019_C1_101B", "其他内容"], ["20211019_D1_102A", "其他内容"] ] column: "20211019_A1_101A"这一列在第几列,例如上面的在第1列,则输入1 ''' new_list = [] for str_i in file_list: list_str_j = re.split(r"_(.*?)_", str_i[column-1]) # 拆分为这种形式: ['20211019', 'A1', '101A'] str_i.append(list_str_j[1]) new_list.append(str_i) return new_list new_list = create_new_column(list1,1) # 将"20211019_A1_101A"所在列传递给函数 print(new_list) # 将新的列表保存为新文件 with open('new_list.txt','w') as f: for i in list1: for j in i: f.write(j) f.write(' ') f.write('\n') f.close()解决 无用评论 打赏 举报 编辑记录