參考鏈接:
https://blog.csdn.net/weixin_36279318/article/details/79078255
需求:將a.csv中,相同手機號,只要有一個發送成功,則其餘改爲發送成功
代碼:
# -*- coding: utf-8 -*-
# @Time : 2019/2/19 16:32
# @Author : guigle
# @File : excel_check.py
# @Software: PyCharm
import os
from collections import defaultdict
import csv
# 遍歷軟件運行的文件夾
path_dir = os.getcwd()
for root, dirs, files in os.walk(path_dir):
for file in files:
if file.endswith('.csv'):
f = open(file, encoding='gbk')
reader1 = csv.reader(f)
# 電話列
tel_col = [column[2] for column in reader1]
tel_li = tel_col[1:]
# print(tel_li)
f.close()
# 錯誤描述列
f = open(file, encoding='gbk')
reader2 = csv.reader(f)
result_col = [column[6] for column in reader2]
result_li = result_col[1:]
# print(result_li)
f.close()
# 拿到電話號碼,及其對應的索引列表
tel = defaultdict(list)
tel_dic = {}
for k, va in [(v, i) for i, v in enumerate(tel_li)]:
tel[k].append(va)
tel_dic = dict(tel)
# print(tel_dic)
# res = defaultdict(list)
# res_dic = {}
# for k, va in [(v, i) for i, v in enumerate(result_li)]:
# res[k].append(va)
# res_dic = dict(res)
# print(dict(d))
for v in tel_dic.values():
print(v)
# 索引列表,每個索引列表v對應一個空列表
index_li = []
if len(v) > 1:
for i in v:
index_li.append(result_li[i])
if "成功" in index_li:
for i in v:
result_li[i] = "成功"
# 複製原文件
f = open(file, encoding='gbk')
# 1.newline=''消除空格行
path01 = os.path.join(os.getcwd(), 'new_csv')
if not os.path.exists(path01):
os.mkdir(path01)
path02 = os.path.join(path01, file)
aim_file = open(path02, 'w', newline='', encoding='gbk')
write = csv.writer(aim_file)
reader = csv.reader(f)
# for row in reader:
# row[6] = result_li[i]
rows = [row for row in reader]
# print(type(rows))
print(rows)
# 2.遍歷rows列表
x = 0
for row in rows:
try:
row[6] = result_li[x]
# 3.把每一行寫到Aim.csv中
write.writerow(row)
x = x + 1
except:
break
f.close()