Python re截取字符串 xlwings将提取结果写入原表

Re模块较为全面的基础讲解
https://www.cnblogs.com/yan-lei/p/7653362.html

但网上很多教程和使用都没有系统全面的介绍group(),该功能非常强大
问题:
x=[]
y = re.findall(pattern,string)
x.append(y)
这样对一列数据处理时会出现数据无法写入问题
使用re.findall()函数 返回结果是一个内容为文本格式的list,eg:y=[‘result’]
在这种情况下,print(x)
[[‘result’],[‘result1’],[‘result2’]]
[[a],[b],[c]]为二维矩阵,上述x输出结果为带格式的二维矩阵
xlwings无法将其按预定格式写入excel表中,代码运行结束后,带填充列仍然为空

import re
import xlwings as xw

Excel = xw.App(visible=True,add_book=False)
Excel.display_alerts=True
Excel.screen_updating=False
#文件位置:filepath,打开test文档,然后保存,关闭,结束程序
filepath=r'C:\Users\viola\Desktop\任务\Demo for test\test example(for qq).xlsx'
ExcelFile = Excel.books.open(filepath)
sheet = ExcelFile.sheets['Sheet1']
#上述代码用于打开指定excel文档,指定工作表

mails = sheet.range('I2').expand('down').value
extract_qq = []
qqmail = r'^.+[@qq\.com]$'

for email in mails:
    if re.match(qqmail, email):
        qq_num = re.search(r'(.*)@qq\.com',email)
        extract_qq.append(qq_num.group(1))
 #关键!!用re.search对字符串分组(需要截取避免使用findall),再用group()提取括号内容,即截取片段。group(0)为整个字符串,group(1)第一个括号内容,group(2)第二个括号内容
    else:
        extract_qq.append('N')
print(extract_qq)

sheet.range('J2').options(transpose=True).value = extract_qq
#写入表格,列表使用transpose将自动填入一列,options(transpose=True)
ExcelFile.save()
ExcelFile.close()
Excel.quit()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值