首页 > 编程 > Python > 正文

python批量查询、汉字去重处理CSV文件

2020-02-15 21:35:41
字体:
来源:转载
供稿:网友

CSV文件用记事本打开后一般为由逗号隔开的字符串,其处理方法用Python的代码如下。为方便各种程度的人阅读在代码中有非常详细的注释。

1.查询指定列,并保存到新的csv文件。

# -*- coding: utf-8 -*- ''''' Author: Good_Night Time: 2018/1/30 03:50 Edition: 1.0 ''' # 导入必须的csv库 import csv  # 创建临时文件temp.csv找出所需要的列 temp_file = open("temp.csv", "w", newline='') # 如果不指定newline='',则每写入一行将有一空行被写入 temp_csv_writer = csv.writer(temp_file, dialect="excel") # 读取input.csv文件,此时只有指定的一列数据 with open('input.csv') as file:   temp_readcsv = csv.reader(file, delimiter=',')   for row in temp_readcsv: # 取出input.csv所有列数据     temp = [row[3]] # 得到指定列数据 #    print(row[3])  #print()打印input.csv文件中第3列所有数据     temp_csv_writer.writerow(temp) # 第3列每行数据循环写入temp.csv文件中 temp_file.close() 

2.查询指定列中,每行数据出现在所有行数据的次数,并保存到新的csv文件。

# -*- coding: utf-8 -*- ''''' Author: Good_Night Time: 2018/1/30 03:50 Edition: 1.0 ''' # 导入必须的csv库 import csv  # 创建临时文件temp.csv找出所需要的列 temp_file = open("temp.csv", "w", newline='') # 如果不指定newline='',则每写入一行将有一空行被写入 temp_csv_writer = csv.writer(temp_file, dialect="excel") # 读取input.csv文件,此时只有指定的一列数据 with open('input.csv') as file:   temp_readcsv = csv.reader(file, delimiter=',')   for row in temp_readcsv: # 取出input.csv所有列数据     temp = [row[3]] # 得到指定列数据 #    print(row[3])  #print()打印input.csv文件中第3列所有数据     temp_csv_writer.writerow(temp) # 第3列每行数据循环写入temp.csv文件中 temp_file.close()  # 在临时文件基础上匹配所要找的数据,计算出次数生成out.csv文件 flag = 0 # 临时变量 out1 = [] # 新建数组来保存指定列的每行数据 time = [] # 新建数组来保存指定列的每行数据出现的次数 out_file = open("out.csv", "w", newline='') # 如果不指定newline='',则每写入一行将有一空行被写入 out_csv_writer = csv.writer(out_file, dialect="excel") out_csv_writer.writerow(["TIMES"]) # 读取temp.csv文件,此时只有指定的一列数据 with open('temp.csv') as file2:   out_readcsv = csv.reader(file2, delimiter=',')   for St in out_readcsv: # 循环取出列的每行数据     out1.append(St) # append()将列的每行数据变为out1链表(list)的后续增加的元素,即将列数据变为一维数组。 #  print(out1[1]) # 打印out1[n]的第n个元素,即原列的第n行元素   for i in range(len(out1)): # len()获得out1链表(list)中元素的个数,便于判断循环次数。 #    print(out1[i]) # 打印out1链表所有元素,检验循环是否出错     flag = out1.count(out1[i]) # count()获得out1链表中第i个元素在所有元素中出现的次数。     time.append(flag) # 将获得的某元素出现的次数按顺序保存至time[]数组里 #  print(time) # 打印显示所有元素出现的次数,判断是否出错   for j in range(len(out1)): # len()得到out1链表元素个数,依此作为time[]查找下标     times = [time[j]] # 取出元素对应出现的次数     out_csv_writer.writerow(times) # 写入out.csv文件里     print(times) # 打印显示次数 out_file.close()             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表