import xlrd
import re
import csv
import time
'''
业务场景 :
读取excel 表格里面的数据,对其中人物介绍中的存在 微信号的信息进行提取(正则提取)
重新组合 倒入到 csv 的表格中
'''
# 打开excel
workbook = xlrd.open_workbook('file/湖南长沙数据线索-3.3.xlsx')
sheet_num = workbook.nsheets
names = workbook.sheet_names()
print("共有{}个工作表,表名分别是:{}".format(sheet_num, names))
sales = workbook.sheet_by_name("原始数据")
sales_rows = sales.nrows # 获取"sales"工作表中的总行数
sales_cols = sales.ncols # 获取"sales"工作表中的总列数
print("sales:{}行×{}列".format(sales_rows, sales_cols))
sh = workbook.sheet_by_name('原始数据')
print(sh.nrows) # 有效数据行数
print(sh.ncols) # 有效数据列数
print(sh.cell(0, 0).value) # 输出第一行第一列的值
print(sh.row_values(0)) # 输出第一行的所有值
# 将数据和标题组合成字典
print(dict(zip(sh.row_values(0), sh.row_values(1))))
# 遍历excel,打印所有数据
headers = ['用户昵称', '账号', '公司名称', '微信号']
post_excel = []
for i in range(sh.nrows):
print(sh.row_values(i))
data = sh.row_values(i)
name = data[3]
short_id = data[4]
jianjie = data[5]
company = data[6]
try:
# 正则提取微信号
wx = re.findall('[A-Za-z0-9]{4,}', jianjie)
except:
continue
if wx:
print(name, wx)
wx_str = ','.join(wx)
goods = [name, short_id, company, wx_str]
post_excel.append(goods)
# 写入csv
if post_excel:
with open('file/湖南.csv', 'w', encoding='utf-8-sig')as f:
f_csv = csv.writer(f)
f_csv.writerow(headers)
f_csv.writerows(post_excel)
print('结束')
time.sleep(1)
网友评论