美文网首页
python 读取 写入 xlsx csv

python 读取 写入 xlsx csv

作者: 西贝巴巴 | 来源:发表于2021-03-04 08:29 被阅读0次
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)

相关文章

网友评论

      本文标题:python 读取 写入 xlsx csv

      本文链接:https://www.haomeiwen.com/subject/cltcqltx.html