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

文章目录

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

要么出众,要么出局

前言

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

注意事项

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

工具 pandas

1. 简介

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

2. 安装方式

复制代码
pip install pandas

3. 简单介绍几个api

py 复制代码
# 文件读取
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文件

py 复制代码
# 定义函数 实时写入数据
# 文件生成  如有问题请大佬指出
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都验证过,可直接运行👽👽👽

运行有问题可联系作者评论交流🤭🤭🤭

风是自由的,你也是自由🤠🤠🤠

欢迎一起交流学习☠️☠️☠️

有帮助请留下足迹 一键三连🥰🥰🥰

爬虫大佬勿喷,欢迎指正问题😈😈😈

后面会做一系列的爬虫文章,请持续关注作者🤡🤡🤡。

相关推荐
亿道电子Emdoor几秒前
【Perforce】Klocwork-kwgcheck图形化界面无法打开如何解决
git·python·github
geovindu8 分钟前
rust: Borg Pattern(续)
开发语言·后端·设计模式·rust·博格模式
aqiu1111112 小时前
【C++算法打怪专栏】8. 字符串转换整数 (atoi)
开发语言·c++·算法
爱吃香菜的初学者2 小时前
十四.Linux——消息队列
linux·运维·开发语言
迅猛龙办公室2 小时前
python实现倒序输出数字
开发语言·python
夏幻灵8 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
程序猿编码8 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
bkspiderx10 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆10 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光10 小时前
C语言入门,深入理解指针(3)
c语言·开发语言