文本文件中有两列
第一列是标签
第二列是对应的值
使用逗号分隔
例如:2,1+1
但因为一些问题,这个标签并不是每行都一一对应的,每个标签的后5行是错误的,所以需要删除这5行
例如:
2,1+1 2,3-1 2,1+2 错误数据 2,1+3 错误数据 2,1+4 错误数据 2,1+5 错误数据 2,1+6 错误数据 3,1+2 ...
上面例子中
2,1+2 2,1+3 2,1+4 2,1+5 2,1+6
是问题数据,需要删除,下面上代码
# 打开存在错误数据的文件 dict_file = open('dictionary.csv','r',encoding='utf-8') dict_values = dict_file.readlines() dict_file.close() # 这个是写入处理后数据的文件 dict_file_correct = open('dictionary_correct.csv','w',encoding='utf-8') # 定义一个临时列表,初始化值是错误数据文件的第一行,因为不定义初始化的话会丢掉第一行数据 temp_list = [dict_values[0]] # 使用行索引读取数据,这样可以用当前行和迁移行的标签做比较 for n in range(1,len(dict_values)): line_list = dict_values[n].strip().split(',') #用逗号拆分出标签和值 line_list_last = dict_values[n-1].strip().split(',') #拆分前一行的标签和值 temp_list.append(dict_values[n]) #行内容插入临时列表中 # 如果当前行标签和上一行的标签不一样了,证明前面的标签读完了 if line_list[0] != line_list_last[0]: # 只读取临时列表中的1到len(temp_list)-(5+1)行,+1行是因为读到新的标签行了 for nn in range(len(temp_list) - 6): dict_file_correct.write(temp_list[nn]) #把内容写入到文件里 temp_list = [dict_values[n]] #重新初始化临时列表 dict_file_correct.close()
标签:temp,删除,标签,list,几行,values,file,dict From: https://www.cnblogs.com/xiu123/p/17015364.html