【愚公系列】《Python网络爬虫从入门到精通》037-文件的存取

ops/2025/3/3 9:35:47/
标题详情
作者简介愚公搬代码
头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,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()函数核心参数
python">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 实战存储示例

python">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 读取指定字符
python">with open('message.txt', 'r', encoding='utf-8') as f:content = f.read(9)  # 读取前9个字符
print(cont

http://www.ppmy.cn/ops/162730.html

相关文章

js基础二

JavaScript基础下 1 事件处理 JS 事件(event)是当用户与网页进行交互时发生的事情,例如单机某个链接或按钮、在文本框中输入文本、按下键盘上的某个按键、移动鼠标等等。当事件发生时,您可以使用 JavaScript 中的事件处理程序&a…

【Elasticsearch】网络配置

Elasticsearch 的网络配置是集群管理和性能优化的重要组成部分。它涉及多个层面的设置,包括节点间通信、客户端访问、安全性以及网络性能优化。以下是结合上述翻译内容对 Elasticsearch 网络配置的详细总结: --- 1.Elasticsearch 网络接口概述 Elasti…

Linux的部分常用基础指令

目录 1. ls 指令 2. pwd命令 3. cd 指令 4. touch 指令 5. mkdir指令 6. rmdir指令&&rm指令 7. rm命令可以同时删除文件或目录 8. man指令 9. cp指令 10. mv指令 11. cat 指令 12. more指令 13. less 指令 14. head指令 15. tail 指令 16. find 指令 17. whi…

MySQL并发知识(面试高频)

mysql并发事务解决 不同隔离级别下,mysql解决并发事务的方式不同。主要由锁机制和MVCC(多版本并发控制)机制来解决并发事务问题。 1. mysql中的锁有哪些? 表级锁: 场景:表级锁适用于需要对整个表进行操作的情况,例如…

线性代数在机器学习中的理论与实践

线性代数在机器学习中的理论与实践 1. 向量空间与特殊矩阵 向量空间 在机器学习中,数据通常以向量的形式表示。一个向量空间 R n {\mathbb{R}^n} Rn 包含了所有 n {n} n 维实数向量,这些向量满足加法和数乘的封闭性。若 x , y ∈ R n {\mathbf{x}, …

前端数据缓存的几种方式详细讲解

以下是前端数据缓存的完整解决方案,涵盖策略设计、技术实现和性能优化: 一、缓存策略分层设计 #mermaid-svg-JWUoiAatYutz7dug {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JWUoiAatYutz7d…

16.4 LangChain LCEL 接口全解析:同步、异步与批处理的正确打开方式

LangChain LCEL 接口全解析:同步、异步与批处理的正确打开方式 关键词:LCEL 接口设计、同步异步编程、批量处理优化、生产级并发控制、流式传输原理 1. 三大接口核心定位与性能特征 1.1 接口对比矩阵 接口类型调用方法适用场景吞吐量资源消耗同步接口invoke()实时交互、低并…

常见的正则匹配规则

目录 1,匹配数字2,匹配字母3,匹配字母和数字4,匹配邮箱地址5,匹配URL6,匹配身份证号7,匹配手机号8,匹配日期9,匹配IP地址10,匹配密码强度11,匹配空…