Python - 代码片段分享 - Excel 数据实时写入方法

news/2025/2/25 10:45:33

文章目录

    • 前言
    • 注意事项
    • 工具 pandas
      • 1. 简介
      • 2. 安装方式
      • 3. 简单介绍几个api
    • 实战片段 - 实时写入Excel文件
    • 结束语

要么出众,要么出局

前言

  1. 我们在爬虫采集过程中,总是将数据解析抓取后统一写入Excel表格文件,如果在解析数据出现问题容易出现数据丢失,该代码片段主要是解决该问题,实时将数据进行持久化落地。
  2. 不需要依赖DB等数据库工具,直接将数据使用Excel进行数据落地。

注意事项

数据抓取过程中请不要操作正在写入的excel文件,导致文件锁定,数据抓取结束。

工具 pandas

1. 简介

Pandas是一个开源的、用于数据处理和分析的Python库。它建立在NumPy数组之上,为Python编程语言提供了易于使用的数据结构和数据分析工具。

2. 安装方式

pip install pandas

3. 简单介绍几个api

# 文件读取
df = pd.read_csv('data.csv')

# 文件写入
df.to_excel('output.xlsx', index = False)

# 查看前3行
df.head(3)

# 查看详细信息
df.info()

# 拼接对象
df1 = pd.DataFrame({'col1': [1, 2, 3]})
df2 = pd.DataFrame({'col1': [4, 5, 6]})
concatenated_df = pd.concat([df1, df2], axis = 0)
.......
.......

实战片段 - 实时写入Excel文件

# 定义函数 实时写入数据
# 文件生成  如有问题请大佬指出
def file_gen(l_data,xlsFileName):
    # 验证文件是否存在  是否进行追加
    if os.path.exists(xlsFileName):
        existing_data = pandas.read_excel(xlsFileName)
        df = pandas.concat([existing_data, pandas.DataFrame([l_data])], ignore_index=True)
    else:
        df = pandas.DataFrame([l_data])

    # 创建一个ExcelWriter对象,并设置列宽
    with pandas.ExcelWriter(xlsFileName, engine='xlsxwriter') as writer:
        df.to_excel(writer, sheet_name='Sheet1', index=False)
        workbook = writer.book
        worksheet = writer.sheets['Sheet1']
        worksheet.set_column('A:A', 24)
        worksheet.set_column('B:B', 14)
        worksheet.set_column('C:C', 20)
        worksheet.set_column('D:D', 60)
        worksheet.set_column('E:E', 40)

# 写入数据 
file_gen({"公司名称": ali_gs, "手机号": ali_phone, "电话号": ali_zhh, "联系方式地址": d_url},'D:/data/temp.xlsx')

结束语

文章中API都验证过,可直接运行👽👽👽
运行有问题可联系作者评论交流🤭🤭🤭
风是自由的,你也是自由🤠🤠🤠
欢迎一起交流学习☠️☠️☠️
有帮助请留下足迹 一键三连🥰🥰🥰
爬虫大佬勿喷,欢迎指正问题😈😈😈
后面会做一系列的爬虫文章,请持续关注作者🤡🤡🤡。


http://www.niftyadmin.cn/n/5865401.html

相关文章

Linux提权之docker提权(十三) 链接第八篇完整版

书接上回 实验环境一样的 第八篇 我们用ssh密钥登陆后 发现我们web1的权限 当我们拿到web1的权限时 我们无法提权(这里我用的继续十二的环境 大家也可以继续) 所以我们首先要提权(当然必须是一个完整的 tty shell 不会的 我们去看第二篇 当然我下边也给你表注明了) python3…

深入理解C语言中的位段

在C语言编程中,我们常常会遇到需要对内存进行精细控制的场景,位段(bit - field)便是C语言提供的一种强大工具,它允许我们在一个字节或多个字节内对数据进行按位的定义和操作,极大地提高了内存使用效率。 一…

电感电流纹波大小影响因素分析与仿真验证

电感电流纹波的大小是开关电源设计中的关键因素,直接影响电源效率和电磁兼容性。 原理分析 1、电感值(L) 2、施加在电感上的电压差(Vdiff) 3、开关周期(fsw) 仿真结果 以boost电路为例&a…

大白话TypeScript第四章项目实践

第四章是项目实践,这就好比你学了很多做菜的技巧,现在要亲自下厨做几道菜来检验和提升自己的厨艺。下面给你介绍小型命令行项目和 Web 应用项目这两类实践,帮你巩固 TypeScript 知识。 小型命令行项目 - 简易文件搜索工具 项目描述 这个简…

EasyExcel 实践案例:打印工资条

文章目录 🎯 1. 每个人一个 Excel 文件(单个对象填充)🎯 2. 每个人一个 Sheet(批量生成工资单)🎯 3. 一张工资表,多个员工(列表数据填充)📌 总结✅…

Winform工具箱、属性、事件

工具箱 Button------按钮:用户可以点击的按钮控件。 CheckBox------复选框:允许用户选择或取消选择选项的复选框。 CheckedListBox:结合了ListBox和CheckBox的功能,允许多项选择。 ColorDialog------颜色选择对话框:用…

九、k8s:ingress

k8s对外服务之ingress: service的作用: NodePort:会在每个节点开放一个端口,端口号30000-32767。 也是只能用于内网访问,四层转发。实现负载均衡。不能基于域名进行访问。 clusterip:service的默认类型&#xff0c…

Apache Doris:一款高性能的实时数据仓库

Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称,能够在亚秒级的时间内返回海量数据的查询结果。Doris 既能支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。 Apache Doris 最初是百度广告报表业务…