当前位置: 首页 > news >正文

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

文章目录

    • 前言
    • 注意事项
    • 工具 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.bookworksheet = 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都验证过,可直接运行👽👽👽
运行有问题可联系作者评论交流🤭🤭🤭
风是自由的,你也是自由🤠🤠🤠
欢迎一起交流学习☠️☠️☠️
有帮助请留下足迹 一键三连🥰🥰🥰
爬虫大佬勿喷,欢迎指正问题😈😈😈
后面会做一系列的爬虫文章,请持续关注作者🤡🤡🤡。

相关文章:

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

文章目录 前言注意事项工具 pandas1. 简介2. 安装方式3. 简单介绍几个api 实战片段 - 实时写入Excel文件结束语 要么出众,要么出局 前言 我们在爬虫采集过程中,总是将数据解析抓取后统一写入Excel表格文件,如果在解析数据出现问题容易出现数据…...

(七)趣学设计模式 之 适配器模式!

目录 一、 啥是适配器模式?二、 为什么要用适配器模式?三、 适配器模式的实现方式1. 类适配器模式(继承插座 👨‍👩‍👧‍👦)2. 对象适配器模式(插座转换器 &#x1f50c…...

DeepSeek 细节之 MoE

DeepSeek 细节之 MoE DeepSeek 团队通过引入 MoE(Mixture of Experts,混合专家) 机制,以“分而治之”的思想,在模型容量与推理成本之间找到了精妙的平衡点,其中的技术实现和细节值得剖思 Transformer 演变…...

【Linux-网络】从逻辑寻址到物理传输:解构IP协议与ARP协议的跨层协作

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 道阻且长,行则将至 目录 📚前言 📖 IP地址的组成 🔖IPv4 🔖IPv6 &#x1f4da…...

毕业离校管理系统的开发与需求分析

在当今信息化的时代背景下,高校的毕业生离校管理工作也逐渐向数字化转型。为了提高工作效率,减少人为错误,增强信息透明度,毕业离校管理系统应运而生。该系统旨在为学校提供一个高效、准确的毕业生离校管理平台,从而提…...

【NLP 24、实践 ⑤ 计算Bert模型中的参数数量】

以前不甘心,总想争个对错,现在不会了 人心各有所愿,没有道理可讲 —— 25.1.18 计算Bert模型结构中的参数数量 BertModel.from_pretrained():用于从预训练模型目录或 Hugging Face 模型库加载 BERT 模型的权重及配置。 参数名称…...

一、Spring框架系统化学习路径

系统化的Spring框架学习路径 第1阶段:基础知识准备 Java基础 核心概念:面向对象、异常处理、集合框架、多线程等。JVM基础:内存模型、垃圾回收机制。 Maven或Gradle Maven:创建项目、依赖管理、生命周期。Gradle:基本…...

Midscene.js - AI驱动,轻松实现UI自动化

UI自动化测试一直是软件测试中的一项重要任务,而随着AI技术的快速发展,自动化测试的能力也在不断提升。如何让UI自动化更智能、精准、灵活?Midscene.js作为一款AI驱动的UI自动化测试工具,正逐步改变着传统自动化测试的面貌。你是不…...

(九)Mapbox GL JS 中 Marker 图层的使用详解

什么是 Marker? 在 Mapbox GL JS 中,Marker(标记) 是一个可视化元素,用于在地图上标记特定的地理位置。它可以是一个默认的图标、自定义的图像,或者任何 HTML 元素。Marker 不仅能显示位置,还能…...

2k1000LA 使能 nand.

背景 : 默认的 发货的镜像 确实 是识别不了 nand 的。 ------------------------------------------------------------------------------------------ 但是 我之前 已经写好了文档,因此 拷贝到线上。 1 首先我要使能这几个。 在menuconfig 中使能一下。...

Junit+Mock

base project <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.11</version><relativePath/></parent><dependencies><!--添加mysql依…...

maven编译出错,javac: ��Ч��Ŀ�귢�а�: 17

1、异常信息 javac: &#xfffd;&#xfffd;Ч&#xfffd;&#xfffd;Ŀ&#xfffd;귢&#xfffd;а&#xfffd;: 17 &#xfffd;&#xfffd;: javac <options> <source files> -help &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;г&a…...

Vue使用Three.js加载glb (gltf) 文件模型及实现简单的选中高亮、测距、测面积

安装&#xff1a; # three.jsnpm install --save three 附中文网&#xff1a; 5. gltf不同文件形式(.glb) | Three.js中文网 附官网&#xff1a; 安装 – three.js docs 完整代码&#xff08;简易demo&#xff09;&#xff1a; <template><div class"siteInspe…...

<el-table>右侧有空白列解决办法

问题如图&#xff1a; 解决办法&#xff1a;.box 为本页面最外层的class名&#xff0c;保证各个页面样式不会互相污染。 .box::v-deep .el-table th.gutter {display: none;width: 0}.box ::v-deep.el-table colgroup col[namegutter] {display: none;width: 0;}.box::v-deep …...

Linux网络 网络层

IP 协议 协议头格式 4 位版本号(version): 指定 IP 协议的版本, 对于 IPv4 来说, 就是 4. 4 位头部长度(header length): IP 头部的长度是多少个 32bit, 也就是 4 字节&#xff0c;4bit 表示最大的数字是 15, 因此 IP 头部最大长度是 60 字节. 8 位服务类型(Type Of Service):…...

系统讨论Qt的并发编程——逻辑上下文的分类

目录 前言 首先&#xff0c;讨论Qt里常见的三种上下文 同一线程的串行执行 同一线程的异步执行 多线程的执行 moveToThread办法 前言 笔者最近看了一个具备一定启发性质的Qt教程&#xff0c;在这里&#xff0c;笔者打算整理一下自己的笔记。分享在这里. 首先&#xff0c…...

《Linux Shell 脚本深度探索:原理与高效编程》

1. 基本结构 Shebang 行 #!/bin/bash # Shebang 行指定了脚本使用的解释器。 /bin/bash 表示使用 Bash 解释器执行脚本。 注释 # 这是注释&#xff0c;不会被执行 2. 变量 定义变量 variable_namevalue # 不需要加 $ 来定义变量。 # 变量名不能包含空格或特殊字符。 访…...

深入剖析:基于红黑树实现自定义 map 和 set 容器

&#x1f31f; 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。&#x1f31f; 在 C 标准模板库&#xff08;STL&#xff09;的大家庭里&#xff0c;map和set可是超级重要的关联容器成员呢&#x1f60e;&#x…...

在大数据项目中如何设计和优化数据模型

在大数据项目中&#xff0c;设计和优化数据模型是一个涉及多个步骤和维度的复杂过程。以下是我通常采取的方法&#xff1a; 一、数据模型设计 明确业务需求&#xff1a; 深入了解项目的业务场景和目标&#xff0c;明确数据模型需要解决的具体问题。与业务团队紧密合作&#xf…...

JavaScript querySelector()、querySelectorAll() CSS选择器解析(DOM元素选择)

文章目录 基于querySelector系列方法的CSS选择器深度解析一、方法概述二、基础选择器类型1. 类型选择器2. ID选择器3. 类选择器4. 属性选择器 三、组合选择器1. 后代组合器2. 子元素组合器3. 相邻兄弟组合器4. 通用兄弟组合器 四、伪类与伪元素1. 结构伪类2. 状态伪类3. 内容伪…...

IAR 9.2 主题设置踩坑实录:从字体失效到关键字高亮,我的完整配置流程

IAR 9.2 主题定制深度指南&#xff1a;从字体陷阱到语法高亮优化 第一次在IAR 9.2中尝试自定义主题时&#xff0c;我本以为会像其他主流IDE那样简单——直到发现字体设置完全失效、关键字高亮混乱不堪。经过三天反复试验和源码分析&#xff0c;终于摸清了这套主题系统的运作机制…...

MuJoCo肌腱系统核心技术深度解析:生物力学仿真的物理引擎架构设计

MuJoCo肌腱系统核心技术深度解析&#xff1a;生物力学仿真的物理引擎架构设计 【免费下载链接】mujoco Multi-Joint dynamics with Contact. A general purpose physics simulator. 项目地址: https://gitcode.com/GitHub_Trending/mu/mujoco MuJoCo&#xff08;Multi-J…...

ADS 2023 保姆级教程:从巴特沃斯到椭圆,手把手仿真你的第一个低通滤波器

ADS 2023 实战指南&#xff1a;三步完成低通滤波器设计与仿真 刚打开ADS软件时&#xff0c;那些密密麻麻的工具栏和陌生的术语确实容易让人望而生畏。但别担心&#xff0c;现代EDA工具早已将复杂的滤波器设计过程封装成了可视化操作。就像用智能手机拍照不需要理解图像传感器原…...

Navicat数据库自动备份实战:如何设置夜间定时任务避免业务中断

Navicat数据库自动备份实战&#xff1a;如何设置夜间定时任务避免业务中断 深夜的办公室只剩下服务器指示灯在黑暗中闪烁&#xff0c;数据库管理员小李终于可以松一口气——公司的核心业务数据正在Navicat的自动备份任务中安全流转。对于现代企业而言&#xff0c;数据库就像数字…...

Spring WebFlux实战:手把手教你用WebFilter和Context实现全局请求日志追踪

Spring WebFlux全链路追踪实战&#xff1a;从WebFilter到Reactor Context的深度设计 当微服务架构遇上响应式编程&#xff0c;传统的日志追踪方案突然变得力不从心。想象这样一个场景&#xff1a;某电商平台大促期间&#xff0c;订单服务突然出现异常响应延迟&#xff0c;但当你…...

告别‘不安全’警告!5分钟搞定内网开发HTTPS,用mkcert生成本地SSL证书(保姆级教程)

5分钟实现本地开发HTTPS&#xff1a;mkcert实战指南 每次在localhost调试网页时&#xff0c;那个刺眼的"不安全"警告是否让你烦躁&#xff1f;作为开发者&#xff0c;我们清楚这只是本地测试环境&#xff0c;但浏览器可不会区别对待。传统自签名证书需要手动导入CA的…...

从空气动力学到代码:Matlab仿真揭秘风机Pm-Wm动态关系

1. 风力发电机组动态关系建模基础 第一次接触风机Pm-Wm曲线时&#xff0c;我被这个看似简单的曲线背后复杂的物理原理震撼到了。就像开车时踩油门&#xff0c;发动机转速和输出功率的关系看似直观&#xff0c;但真要建模却需要考虑空气动力学、机械传动、电气特性等多重因素。 …...

终极Visual C++运行库一键解决方案:告别DLL缺失的5个简单步骤

终极Visual C运行库一键解决方案&#xff1a;告别DLL缺失的5个简单步骤 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否经常遇到"无法启动程序&#…...

TShock 5.1.2 配置精解:从安全防护到游戏体验的全方位调校指南

1. TShock 5.1.2 配置文件基础认知 初次接触TShock服务器的朋友&#xff0c;面对config.json里密密麻麻的参数难免会感到头疼。其实这个配置文件就像乐高积木的说明书&#xff0c;掌握关键模块就能搭建出理想的游戏环境。我刚开始管理服务器时&#xff0c;花了整整三天才摸清门…...

深入Python字节码:一行`print(a)`引发的UnboundLocalError到底是怎么发生的?

深入Python字节码&#xff1a;一行print(a)引发的UnboundLocalError到底是怎么发生的&#xff1f; 在Python开发中&#xff0c;UnboundLocalError是一个让许多开发者困惑的报错。表面上看&#xff0c;它似乎只是提醒我们"变量在赋值前被引用"&#xff0c;但背后隐藏着…...