【愚公系列】《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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/979680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pyside6学习专栏(八):在PySide6中使用matplotlib库绘制三维图形

本代码原来是PySide6官网的一个示例程序,我对其进行的详细的注释,同时增加了一个功能:加载显示cass的地形图坐标数据示例,示例可显示以下几种三维图形 程序运行界面如下: 代码如下: # -*- coding: utf-8 -…

【多模态大模型论文精读】MOSHI:双工实时语音对话大模型

写在前面 大型语言模型(LLM)的飞速发展,让人机对话变得越来越自然流畅。从 Alexa、Siri 到 Google Assistant,语音助手已经成为我们生活中不可或缺的一部分。然而,这些看似智能的对话系统,背后却隐藏着一个…

Elasticsearch --- 相关基础知识整理

目录 1、核心功能2、主要用途3、数据模型4、优势5、映射5.1 映射的作用5.2 字段数据类型5.3 动态映射与显式映射5.4 映射设置5.5 多字段与元字段5.6 映射的创建与管理5.7 映射优化建议 6、 倒排索引6.1 **倒排索引的基本概念**6.2 **倒排索引的工作原理**6.3 **倒排索引的优势*…

lqb官方题单-速成刷题清单(上) - python版

预计3月5日 Wednesday 前完成 【2025年3月1日,记】题目太简单了,3月3日前完成 蓝桥杯速成刷题清单(上) https://www.lanqiao.cn/problems/1216/learning/?problem_list_id30&page1 替换题号1216 目录 进度题解和碎碎念1. 排…

计算机网络——详解TCP三握四挥

文章目录 前言一、三次握手1.1 三次握手流程1.2 tcp为什么需要三次握手建立连接? 二、四次挥手2.1 四次挥手流程2.2 为什么是四次,不是三次?2.3 为什么要等待2msl?2.4 TCP的保活计时器 前言 TCP和UDP是计算机网络结构中运输层的两…

【AD】3-6 层次原理图

自上而下 1.放置-页面符号,并设置属性 2.放置-端口 可通过如下设置将自动生成关掉 3.放置-添加图纸入口,并创建图纸 自下而上 1.子图的原理图页设计 设计资原理图,复制网络标签,智能粘贴未PORT 2.新建主图原理图 创建框…

C语言【指针篇】(四)

前言:正文1. 字符指针变量2. 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 两段有趣的代码4.3.1 typedef关键字 5. 函数指针数组6. 转移表 总结 前言&am…

认识苹果SWIFT语言

Swift 是苹果公司于 2014 年在 WWDC(苹果全球开发者大会)上发布的一种编程语言,旨在替代 Objective-C,用于开发 iOS、macOS、watchOS 和 tvOS 等苹果平台的应用程序。Swift 的设计目标是结合 C 和 Objective-C 的优点,…

python集合set的常用方法

目录 集合的定义 集合的基础操作 多个集合之间的操作 集合的for循环 集合的定义 集合的基础操作 集合.add(元素) 添加新元素 集合.pop() 从集合中随机取出一个元素 集合.clear() 清空集合 集合.remove(元素) 移除元素 #定义集合,集合自动去重了 set1{"春"…

2019年01月全国POI数据分享(同源历史POI分享系列)

2019年01月全国范围POI数据 2019年01月份全国范围历史POI数据,全国范围所有类别共59336781个POI 2019年01月全国范围POI数据按大类统计 大类代码大类名称2019年01月该类POI数量010000汽车服务1151164020000汽车销售213647030000汽车维修517367040000摩托车服务1800…

简单介绍JVM

1.什么是JVM? JVM就是Java虚拟机【Java Virtual Machine】,简称JVM。主要部分包括类加载子系统,运行时数据区,执行引擎,本地方法库等,接下来我们一一介绍 2.类加载子系统 JVM中运行的就是我们日常写的JA…

关于流水线的理解

还是不太理解,我之前一直以为,对axis总线,每一级的寄存器就像fifo一样,一级一级的分级存储最后一级需要的数据。 像这张图,一开始是在解析axis流形式的数据包,数据包一直都能输入,所以valid一直…

基于PHP和MySQL的用户登录注册系统实现

系统架构 系统采用前后端分离的架构,使用PHP作为后端语言,MySQL作为数据库。以下是系统的整体架构图: 这个架构图展示了系统的三个主要层次: 前端界面层:包含用户交互的三个页面(注册、登录和欢迎页面&am…

【湖北省计算机信息系统集成协会主办,多高校支持 | ACM出版,EI检索,往届已见刊检索】第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025)

第二届边缘计算与并行、分布式计算国际学术会议(ECPDC 2025)将于2025年4月11日至13日在中国武汉盛大召开。本次会议旨在为边缘计算、并行计算及分布式计算领域的研究人员、学者和行业专家提供一个高水平的学术交流平台。 随着物联网、云计算和大数据技术…

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(七) 主题设置

1. 引入daisyUi 我们用的是^4.12.23版本 daisyUI介绍 Install daisyUI as a Tailwind CSS plugin — Tailwind CSS Components ( version 4 update is here ) 切换主题功能我们仿照daisyUI themes — Tailwind CSS Components ( version 5 update is here ) 1.在tailwind.co…

EGO-Planner的无人机视觉选择(yolov5和yolov8)

EGO-Planner的无人机视觉选择(yolov5和yolov8) 效果 yolov5检测效果 yolov8检测效果 一、YOLOv8 vs YOLOv5:关键差异解析 1. 训练效率:为何YOLOv8更快? 架构轻量化 YOLOv8采用C2f模块(Cross Stage Partia…

.net8 使用 license 证书授权案例解析

创建 webapi 项目 使用 .NET CLI 创建一个 ASP.NET Core Web API 应用,并添加指定的 NuGet 包,可以按照以下步骤操作: 创建 ASP.NET Core Web API 项目: dotnet new webapi -n WebAppLicense cd WebAppLicense添加 Standard.Li…

uniapp中使用leaferui使用Canvas绘制复杂异形表格的实现方法

需求: 如下图,要实现左图的样式,先实现框架,文字到时候 往里填就行了,原来的解决方案是想用css,html来实现,发现实现起来蛮麻烦的。我也没找到合适的实现方法,最后换使用canvas来实现&#xff…

支付宝 IoT 设备入门宝典(下)设备经营篇

上篇介绍了支付宝 IoT 设备管理,但除了这些基础功能外,商户还可以利用设备进行一些运营动作,让设备更好的帮助自己,本篇就会以设备经营为中心,介绍常见的设备相关能力和问题解决方案。如果对上篇感兴趣,可以…

Vue学习教程-18Vue单文件组件

文章目录 前言一、单文件组件的构成二、组件引用三、组件的应用举例1.组件实例2.显示结果 前言 Vue 单文件组件(又名 *.vue 文件,缩写为 SFC)是一种特殊的文件格式,它允许将 Vue 组件的模板、逻辑 与 样式封装在单个文件中。组件…