【愚公系列】《Python网络爬虫从入门到精通》037-文件的存取
| 标题 | 详情 |
|---|---|
| 作者简介 | 愚公搬代码 |
| 头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
| 近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。 |
| 博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
| 欢迎 | 👍点赞、✍评论、⭐收藏 |
文章目录
- 🚀前言
- 🚀一、文件的存取
- 🔎1.📝 Python文件操作详解:TXT文件存储与读取
- 🦋1.1 文件存储基础
- ☀️1.1.1 open()函数核心参数
- ☀️1.1.2 文件模式详解
- 🦋1.2 实战存储示例
- 🦋1.3 文件读取技术
- ☀️1.3.1 读取指定字符
- ☀️1.3.2 指针定位读取
- ☀️1.3.3 逐行读取
- ☀️1.3.4 批量读取所有行
- 🦋1.4 关键注意事项
- 🦋1.5 性能对比测试
- 🦋1.6 扩展应用:CSV交互
- 🔎2.📊 Pandas数据存储指南:CSV与Excel文件操作详解
- 🦋2.1 CSV文件存储技术
- ☀️2.1.1 核心方法:`DataFrame.to_csv()`
- ☀️2.1.2 参数速查表
- ☀️2.1.3 实战示例
- ☀️2.1.4 文件输出对比
- 🦋2.2 Excel文件存储技术
- ☀️2.2.1 核心方法:`DataFrame.to_excel()`
- ☀️2.2.2 参数速查表
- ☀️2.2.3 实战示例
- ☀️2.2.4 Excel文件输出效果
- 🦋2.3 格式控制技巧
- ☀️2.3.1 浮点数精度控制
- ☀️2.3.2 中文编码处理
- ☀️2.3.3 多工作表操作
- 🦋2.4 常见问题解决方案
- 🦋2.5 格式对比与选择建议
🚀前言
在网络爬虫的开发过程中,数据的存取是一个至关重要的环节。无论是从网页抓取来的文本、图片,还是其他格式的数据,如何高效、准确地存储和读取这些信息,直接关系到爬虫的性能和后续数据分析的效果。在《Python网络爬虫从入门到精通》的第037篇文章中,我们将深入探讨文件的存取方法,帮助你在爬虫项目中灵活运用这些技巧。
本篇文章将涵盖文件的基本读写操作,包括如何使用Python的内置函数以及流行的第三方库来处理各类文件格式,如文本文件、CSV文件和JSON文件等。通过具体的实例,我们将演示如何将抓取的数据有效地保存到文件中,以及如何从文件中读取数据进行进一步处理。这些技能不仅能提升你在爬虫项目中的开发效率,还能帮助你更好地管理和利用数据。
🚀一、文件的存取
🔎1.📝 Python文件操作详解:TXT文件存储与读取
🦋1.1 文件存储基础
☀️1.1.1 open()函数核心参数
file = open(filename, mode='r', buffering=-1)
| 参数 | 说明 | 常用值 |
|---|---|---|
filename | 文件路径(相对/绝对) | “data.txt” |
mode | 文件访问模式 | r/w/a/r+/rb等 |
buffering | 缓冲策略(0=无缓冲,1=行缓冲,>1=缓冲区大小) | 默认系统缓冲设置 |
☀️1.1.2 文件模式详解
| 模式 | 说明 | 适用场景 |
|---|---|---|
r | 只读模式(默认) | 读取现有文件 |
w | 写入模式(覆盖原有内容) | 创建新文件/清空重写 |
a | 追加模式(在文件末尾添加) | 日志文件记录 |
r+ | 读写模式(指针在开头) | 需要同时读写操作 |
rb | 二进制只读 | 处理非文本文件 |
wb | 二进制写入 | 保存图片/视频 |
🦋1.2 实战存储示例
import requests # 导入网络请求模块
from bs4 import BeautifulSoup # html解析库url = 'http://quotes.toscrape.com/tag/inspirational/' # 定义请求地址
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
response = requests.get(url,headers) # 发送网络请求
if response.status_code==200: # 如果请求成功#创建一个BeautifulSoup对象,获取页面正文soup = BeautifulSoup(response.text, features="lxml")text_all = soup.find_all('span',class_='text') # 获取所有显示励志名句的span标签txt_file = open('data.txt','w',encoding='utf-8') # 创建open对象for i,value in enumerate(text_all): # 循环遍历爬取内容txt_file.write(str(i)+value.text+'\n') # 写入每条爬取的励志名句并在结尾换行txt_file.close() # 关闭文件操作
输出文件示例:

🦋1.3 文件读取技术
☀️1.3.1 读取指定字符
with open('message.txt', 'r', encoding='utf-8') as f:content = f.read(9) # 读取前9个字符
print(cont相关文章:
【愚公系列】《Python网络爬虫从入门到精通》037-文件的存取
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...
【一起学Rust | Tauri2.0框架】单实例应用程序的深入解析:零漏洞实现与优化实战
文章目录 前言一、 单实例应用的意义二、 实现单实例应用的方法1 Windows下的实现1.1 创建命名Mutex1.2 在Tauri应用中集成Mutex检查 2 macOS下的实现2.1 获取Bundle Identifier2.2 检查是否已经有实例在运行 3 Linux下的实现3.1 获取进程列表3.2 检查是否已经有实例在运行 4 在…...
PhyloSuite v1.2.3安装与使用-生信工具049
PhyloSuite 一个好用的win集成建树平台,官方相关文档视频等做的可好了PhyloSuite (jushengwu.com) 官网 https://github.com/dongzhang0725/PhyloSuite/releases #官网 http://phylosuite.jushengwu.com/dongzhang0725.github.io/installation/ #官方说明文档…...
使用Apache Lucene构建高效的全文搜索服务
使用Apache Lucene构建高效的全文搜索服务 在现代应用程序中,全文搜索功能是不可或缺的一部分。无论是电子商务网站、内容管理系统,还是数据分析平台,快速、准确地搜索大量数据是提升用户体验的关键。Apache Lucene 是一个强大的全文搜索引擎…...
SSH远程登录并执行命令
SSH远程登录并执行命令 1、登录远程服务器2、远程执行命令3、远程执行交互命令4、远程执行脚本5、退出远程SSH连接 SSH是Linux中的远程连接管理工具,可以在本地服务器上通过SSH协议连接到远程服务器,并在远程服务器上执行命令 SSH不仅可以用来登录远程服…...
EasyRTC:支持任意平台设备的嵌入式WebRTC实时音视频通信SDK解决方案
随着互联网技术的飞速发展,实时音视频通信已成为各行各业数字化转型的核心需求之一。无论是远程办公、在线教育、智慧医疗,还是智能安防、直播互动,用户对低延迟、高可靠、跨平台的音视频通信需求日益增长。 一、WebRTC与WebP2P:实…...
Golang语言特性
1.Go语言的优势 1.1极简单的部署方式 —可以直接编译成机器码。代码可以直接转换为二进制数据,在操作系统上可以直接./去执行。 —不依赖其他库。最终生成的可执行程序是一个静态的二进制文本文件。 —可以直接运行即可部署。 —静态类型语言。编译的时候检查出来隐…...
LangPrompt提示词
LangPrompt提示词 https://github.com/langgptai/LangGPT 学习LangGPT的仓库,帮我创建 一个专门生成LangGPT格式prompt的助手 根据LangGPT的格式规范设计的专业提示词生成助手框架。以下是分步骤的解决方案: 助手角色定义模板 # Role: LangGPT提示词架…...
Java 容器之 List
在 Java 的集合框架中,List 是 Collection 的重要子接口,以其有序、可重复的特点广泛应用于开发中。本文将详细探讨 List 的核心概念、主要实现类(如 ArrayList 和 LinkedList)的底层原理,以及使用中需要注意的常见问题…...
ETL-kettle数据转换使用详解
一、excel转换成mysql 表格就按照我们刚才转换的表格来转换成MySQL数据 在MySQL数据库中创建数据库,这个根据自身情况。我就在现有test库中测试了。 根据以上步骤,新建转换。 构建流程图,选择excel输入和表输出 将两个组件连接起来 双击…...
【容器化】低版本docker拉取ubuntn 22.04镜像启动容器执行apt update提示 NO_PUBKEY 871920D1991BC93C
前置信息 宿主机信息 [root@localhost ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR…...
Hive-04之存储格式、SerDe、企业级调优
一、主题 hive表的数据压缩和文件存储格式hive的自定义UDF函数hive的JDBC代码操作hive的SerDe介绍和使用hive的优化 二、要点 1. hive表的文件存储格式 Hive支持的存储数的格式主要有:TEXTFILE(行式存储) 、SEQUENCEFILE(行式存储)、ORC&…...
Makefile、Make和CMake:构建工具的三剑客
目录 1. Makefile 2. Make 3. CMake Makefile、Make、CMake的关系 在软件开发中,构建工具是必不可少的。它们帮助开发者自动化编译、链接和打包的过程,确保代码能够高效地转化为可执行文件。Makefile、Make和CMake是三个常见的构建工具,它…...
The “Rule-of-Zero“ should be followed (s4963)
Most classes should not directly handle resources, but instead, use members that perform resource handling for them: For memory, it can be std::unique_ptr, std::shared_ptr, std::vector…For files, it can be std::ofstream, std::ifstream…… Classes …...
Kotlin语言特性(二):泛型与注解
Kotlin语言特性(二):泛型与注解 一、引言 在上一篇文章中,我们介绍了Kotlin的三大核心特性。本文将深入探讨Kotlin的泛型和注解特性,并与Java进行对比,帮助你更好地理解和运用这些特性。 二、Kotlin泛型 2.1 泛型基础 2.1.1 声明泛型类 // Kotlin泛型类声明 class …...
FunPapers[3]:WWW‘25「快手」生成式回归预测观看时长
Sequence Generation Modeling for Continuous Value Prediction https://arxiv.org/pdf/2412.20211,www 2025. 文章目录 Sequence Generation Modeling for Continuous Value Prediction核心思想1. CVP常规方法是怎么做的?2. 观看时长预测和CVP是如何关…...
并发编程1
JAVA线程回顾 多线程 多个并行的线程来完成个自的任务,优点是程序响应速度更快,程序性能得到提升。 并行执行与并发执行 并发执行就是在单核CPU下,现成实际上是串行执行的,任务调度器将cpu的时间片分给不同的线程使用࿰…...
Hadoop之01:HDFS分布式文件系统
HDFS分布式文件系统 1.目标 理解分布式思想学会使用HDFS的常用命令掌握如何使用java api操作HDFS能独立描述HDFS三大组件namenode、secondarynamenode、datanode的作用理解并独立描述HDFS读写流程HDFS如何解决大量小文件存储问题 2. HDFS 2.1 HDFS是什么 HDFS是Hadoop中的一…...
从源到目标:深度学习中的迁移学习与领域自适应实践
云边有个稻草人-CSDN博客 目录 引言 一、迁移学习概述 1.1 迁移学习的类型 1.2 迁移学习的核心思想 1.3 迁移学习的应用场景 二、领域自适应(Domain Adaptation) 2.1 领域自适应的定义 2.2 领域自适应的挑战 2.3 领域自适应的核心方法 &#…...
WebRTC与PJSIP:呼叫中心系统技术选型指南
助力企业构建高效、灵活的通信解决方案 在数字化时代,呼叫中心系统的技术选型直接影响客户服务效率和业务扩展能力。WebRTC与PJSIP作为两大主流通信技术,各有其核心优势与适用场景。本文从功能、成本、开发门槛等维度为您深度解析,助您精准匹…...
Gemini3.1Pro和GPT5.5写代码到底谁更强五类任务实测数据说
做多模型编码能力横向对比测试时用了AI模型聚合平台,一站接入两个模型方便跑同一套编码任务。Gemini 3.1 Pro在SWE-Bench Verified拿到80.6%。GPT-5.5在Terminal-Bench拿到82.7%。分数接近但写代码的实际体验和分数不是一回事。这次用五类真实开发任务做了一轮系统对…...
2026 BI指标管理平台设计与最佳实践
引言关于衡石科技(HENGSHI):衡石科技是国内领先的嵌入式BI PaaS平台提供商,其核心产品HENGSHI SENSE以"让数据分析无处不在"为使命,为企业提供从数据连接、数据准备、指标管理、可视化分析到智能问答的全链路…...
避开BLE开发第一个坑:搞懂广播帧里的TxAdd、ChSel字段,让你的智能硬件不再‘隐身’
避开BLE开发第一个坑:广播帧关键字段解析与实战排查指南 当你第一次将精心编写的固件烧录进蓝牙芯片,满心期待地用手机扫描设备时,却发现屏幕上空空如也——这种"设备隐身"的挫败感,几乎每个BLE开发者都经历过。问题的根…...
汽车零部件品牌升级方法拆解:复杂B2B能力如何被客户看懂
从B2B表达方法看,汽车零部件品牌升级可以理解为一个“客户判断结构化”的问题。企业不是简单输出自我介绍,而是要把技术能力、项目经验、质量体系、协同机制与证据材料,转化为客户不同角色都能使用的判断信息。很多汽车零部件企业已经完成了实…...
Spring Cloud Feign本地调试路由增强方案设计与实现
1. 项目概述:当Feign遇上本地调试的“网络鸿沟”在微服务架构里混迹多年的老手,对OpenFeign这个组件肯定不陌生。它用起来确实爽,一个接口加几个注解,服务间的远程调用就像调用本地方法一样简单,把HTTP通信的复杂性都封…...
WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南
WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸III在W…...
B/S架构模式在校园管理系统中的应用研究
随着校园信息化建设的不断普及,各类校园管理系统层出不穷,系统架构模式直接决定系统的使用便捷性、运维难度与适配场景。传统C/S架构即客户端/服务器架构,需要用户下载安装专属客户端,存在部署繁琐、升级困难、跨终端适配差、运维…...
给老系统装一层 “能办事的 AI”:企业 Agent 卡住的最后一步,SkillsUI 想补上
让我们从一个所有做企业 Agent 的人都遇到过的具体场景说起。某券商风控员要给客户开通融资融券账户,传统流程是这样的:登录 OA 提风控审批 → 跳到 CRM 拉客户资料 → 跳到风控系统填评估表 → 跳到电子签平台发签约链接 → 回 OA 关单。十几个字段反复…...
从开发者视角感受Taotoken官方价折扣带来的实际成本节省
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从开发者视角感受Taotoken官方价折扣带来的实际成本节省 对于独立开发者和小型团队而言,在构建和迭代AI应用时…...
【Sora 2批量视频生成黄金工作流】:实测吞吐提升4.8倍的关键配置——NVIDIA A100集群下每小时稳定输出217段1080p视频
更多请点击: https://codechina.net 第一章:Sora 2批量视频生成工作流全景概览 Sora 2作为新一代多模态视频生成模型,其批量处理能力依托于模块化、可编排的端到端工作流设计。该工作流融合提示工程、时空 latent 编码、分块并行解码与后处理…...
