Python 数据文件读写教程

Python 数据文件读写教程

在数据科学和软件开发中,文件的读写操作是至关重要的。Python 作为一门功能强大的编程语言,提供了多种方式来处理文件,包括文本文件、CSV 文件、JSON 文件等。在本教程中,我们将深入探讨 Python 中的数据文件读写操作,结合示例和图片,帮助你更好地理解这些操作。
在这里插入图片描述

1. 文件读写的基本概念

在 Python 中,文件读写操作主要通过内置的 open() 函数实现。该函数可以打开一个文件,并返回一个文件对象,随后我们可以使用该对象进行读写操作。文件的打开模式有多种,包括:

  • 'r': 只读模式(默认模式)
  • 'w': 写入模式(会覆盖原有文件)
  • 'a': 追加模式(在文件末尾添加内容)
  • 'b': 二进制模式(用于处理非文本文件)
  • 'x': 独占写模式(如果文件存在则报错)

示例:打开文件

# 打开文件
file = open('example.txt', 'r')

2. 读取文本文件

2.1 读取整个文件

使用 read() 方法可以一次性读取文件的所有内容。以下是一个示例:

# 读取整个文件
with open('example.txt', 'r') as file:content = file.read()print(content)

2.2 按行读取

使用 readline() 方法可以逐行读取文件。以下是一个示例:

# 按行读取
with open('example.txt', 'r') as file:for line in file:print(line.strip())  # 使用 strip() 去除行末的换行符

2.3 读取所有行

使用 readlines() 方法可以将文件的所有行读取为一个列表。以下是一个示例:

# 读取所有行
with open('example.txt', 'r') as file:lines = file.readlines()for line in lines:print(line.strip())

3. 写入文本文件

3.1 写入新文件

使用 write() 方法可以将字符串写入文件。如果文件不存在,则会创建一个新文件。以下是一个示例:

# 写入新文件
with open('output.txt', 'w') as file:file.write("Hello, World!\n")file.write("This is a test file.")

3.2 追加内容

使用 a 模式可以将内容追加到已有文件的末尾。以下是一个示例:

# 追加内容
with open('output.txt', 'a') as file:file.write("\nAdding more content to the file.")

4. 处理 CSV 文件

CSV 文件是一种常见的用于存储表格数据的文件格式。Python 的 csv 模块提供了方便的工具来处理 CSV 文件。

4.1 读取 CSV 文件

以下是一个读取 CSV 文件的示例:

import csv# 读取 CSV 文件
with open('data.csv', 'r') as file:reader = csv.reader(file)for row in reader:print(row)

4.2 写入 CSV 文件

以下是一个写入 CSV 文件的示例:

import csv# 写入 CSV 文件
data = [['Name', 'Age', 'City'],['Alice', 30, 'New York'],['Bob', 25, 'Los Angeles'],
]with open('output.csv', 'w', newline='') as file:writer = csv.writer(file)writer.writerows(data)

5. 处理 JSON 文件

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,Python 的 json 模块提供了方便的工具来处理 JSON 文件。

5.1 读取 JSON 文件

以下是一个读取 JSON 文件的示例:

import json# 读取 JSON 文件
with open('data.json', 'r') as file:data = json.load(file)print(data)

5.2 写入 JSON 文件

以下是一个写入 JSON 文件的示例:

import json# 写入 JSON 文件
data = {'name': 'Alice','age': 30,'city': 'New York'
}with open('output.json', 'w') as file:json.dump(data, file)

6. 处理 Excel 文件

对于 Excel 文件,Python 提供了 pandas 库来进行处理。pandas 库提供了方便的函数来读取和写入 Excel 文件。

6.1 读取 Excel 文件

以下是一个读取 Excel 文件的示例:

import pandas as pd# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
print(df)

6.2 写入 Excel 文件

以下是一个写入 Excel 文件的示例:

import pandas as pd# 创建数据框
data = {'Name': ['Alice', 'Bob'],'Age': [30, 25],'City': ['New York', 'Los Angeles']
}
df = pd.DataFrame(data)# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)

7. 文件操作中的异常处理

在文件操作中,可能会遇到各种异常情况,例如文件不存在、权限不足等。使用 try...except 语句可以有效地处理这些异常。

示例:异常处理

try:with open('non_existent_file.txt', 'r') as file:content = file.read()
except FileNotFoundError:print("文件未找到,请检查文件路径。")
except PermissionError:print("权限不足,无法访问该文件。")

8. 进阶用法

8.1 文件路径操作

在处理文件时,文件路径的操作也是非常重要的。可以使用 os 模块来处理文件路径。

import os# 获取当前工作目录
current_directory = os.getcwd()
print("当前工作目录:", current_directory)# 拼接文件路径
file_path = os.path.join(current_directory, 'example.txt')
print("文件路径:", file_path)

8.2 读取大文件

在处理大文件时,建议逐行读取,以避免占用过多内存。以下是一个示例:

# 逐行读取大文件
with open('large_file.txt', 'r') as file:for line in file:process(line)  # 自定义处理函数

9. 总结

通过本教程,我们深入探讨了 Python 中的数据文件读写操作,包括文本文件、CSV 文件、JSON 文件和 Excel 文件的处理。我们还讨论了异常处理和文件路径操作等进阶用法。希望这些内容能够帮助你更好地掌握 Python 的文件读写技巧。

附录:常见问题

  1. 如何处理二进制文件?
    使用 'rb' 模式打开文件进行读取,使用 'wb' 模式进行写入。

  2. 如何读取大文件而不占用过多内存?
    使用逐行读取的方法,避免一次性加载整个文件。

  3. 如何处理文件路径?
    使用 os.path 模块来拼接和处理文件路径。

  4. 如何确保文件在操作后关闭?
    使用 with 语句可以自动关闭文件,确保资源的释放。

希望这篇教程对你有所帮助!如有任何问题,请随时在评论区留言。通过不断学习和实践,你将能够更好地掌握 Python 的文件读写操作,为你的项目增添更多可能性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟实现优先级队列

目录 定义 特点 构造函数 常用方法 关于扩容的问题 关于建堆的问题 向上调整和向下调整的比较 (向上调整)代码 (向下调整)代码 关于入队列和出队列问题 模拟实现优先级队列代码 关于堆排序的问题 堆排序代码 关于对…

Autosar CP DDS规范导读

Autosar CP DDS 主要用途 数据通信 中间件协议:作为一种中间件协议,DDS实现了应用程序之间的高效数据通信,能够在不同的软件组件和ECU之间传输数据,确保数据的实时性和可靠性。跨平台通信:支持在AUTOSAR CP平台上的不同…

数字IC实践项目(10)—基于System Verilog的DDR4 Model/Tb 及基础Verification IP的设计与验证(付费项目)

数字IC实践项目(10)—基于System Verilog的DDR4 Model/Tb 及基础Verification IP的设计与验证(付费项目) 前言项目框图1)DDR4 Verification IP2)DDR4 JEDEC Model & Tb 项目文件1)DDR4 Veri…

Jmeter中的监听器(三)

9--断言结果 功能特点 显示断言结果:列出所有断言的结果,包括通过和失败的断言。详细信息:显示每个断言的详细信息,如断言类型、实际结果和期望结果。错误信息:显示断言失败时的错误信息,帮助调试。颜色编…

人工智能大比拼(3)

已知x-,y-6,且下述表达式的值与x的取值无关,求y -10x2y7xy 上述这个很简单的数学题,可是在各家AI之间出现了争议,本期我使用了四个AI:kimi,商量,文心一言,chatyy 先来看一下kimi的表…

Xilinx Aurora 8B/10B IP介绍以及下板验证

文章目录 一、什么是Aurora协议?二、Aurora 8B/10B IP核的结构原理三、Aurora 8B/10B IP核 延迟开销四、用户数据接口格式4.1 AXI4-Stream 位排序4.2 帧传输用户端口说明4.3 帧传输数据流程4.4 Aurora 8B/10B 帧格式4.5 帧格式数据传输时序4.5.1 简单数据传输4.5.2 …

Redis8:商户查询缓存2

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

Camera Tuning中AE/AWB/AF基础知识介绍

3A定义 3A是Camera ISP控制算法的一个重要组成部分,通常分为自动曝光(AE)、自动聚焦(AF)、自动白平衡(AWB)三个组件。 自动曝光(Auto Exposure) AE基本概念 曝光概念…

数据库中的用户管理和权限管理

​ 我们进行数据库操作的地方其实是数据库的客户端,是我们在客户端将操作发送给数据库的服务器(MySQL的服务器是mysqld),由数据库处理之后发送回来处理结果(其实就是一种网络服务)。所以可以存在多个客户端…

ubuntu24.04安装matlab失败

又是摸鱼摆烂的一天,好难过~ 官方教程:https://ww2.mathworks.cn/help/install/ug/install-products-with-internet-connection.html 问题描述:https://ww2.mathworks.cn/matlabcentral/answers/2158925-cannot-install-matlab-r2…

Hive1.2.1与Hbase1.4.13集成---版本不兼容问题

hive与hbase集成失败,汗流夹背了吧老弟......哈哈哈哈,刷到这篇文章,那你可真是太幸运啦~ 常见错误一: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/h…

项目1:井字棋 --- 《跟着小王学Python》

项目1:井字棋 — 《跟着小王学Python新手》 文章目录 项目1:井字棋 --- 《跟着小王学Python新手》目标功能设计1. 数据结构2. 功能模块3. 用户界面 实现步骤代码实现测试注意事项小结 目标 本技术文章旨在指导读者如何使用 Python 编程语言来实现一个简…

Python 的 Pygame 库,编写简单的 Flappy Bird 游戏

Pygame 是一个用 Python 编写的开源游戏开发框架,专门用于编写 2D 游戏。它提供了丰富的工具和功能,使得开发者能够快速实现游戏中的图形渲染、声音播放、输入处理和动画效果等功能。Pygame 非常适合初学者和想要快速创建游戏原型的开发者。 Pygame 的主…

LeetCode-222.完全二叉树的节点个数

. - 力扣(LeetCode) 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一…

【MongoDB】MongoDB的核心-索引原理及索引优化、及查询聚合优化实战案例(超详细)

文章目录 一、数据库查询效率问题引出索引需求二、索引的基本原理及作用(一)索引的创建及数据组织(二)不同类型的索引(三)索引的额外属性 三、索引的优化与查询计划分析(一)通过prof…

企业如何实现无缝数据中心进行大数据迁移呢?

数据中心迁移是企业面临的一个复杂而关键的挑战,涉及到大量的数据移动和系统的重新部署。随着业务的扩展和技术的进步,企业可能需要将数据中心迁移到新的位置或升级到更先进的设备。在进行数据迁移时,必须精心规划和执行,以确保数…

初始JavaEE篇 —— 网络编程(2):了解套接字,从0到1实现回显服务器

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 目录 TCP 与 UDP Socket套接字 UDP TCP 网络基础知识 在一篇文章中,我们了解了基础的网络知识,网络的出…

【人工智能】10分钟解读-深入浅出大语言模型(LLM)——从ChatGPT到未来AI的演进

文章目录 一、前言二、GPT模型的发展历程2.1 自然语言处理的局限2.2 机器学习的崛起2.3 深度学习的兴起2.3.1 神经网络的训练2.3.2 神经网络面临的挑战 2.4 Transformer的革命性突破2.4.1 Transformer的核心组成2.4.2 Transformer的优势 2.5 GPT模型的诞生与发展2.5.1 GPT的核心…

最全最简单理解迭代器

1. 迭代器的基础概念(iterator) 1.1 本质 迭代器能够用来遍历容器的对象,与能够遍历数组的指针类似,是广义指针。 1.2 作用: 能够让迭代器与算法不干扰的相互发展,最后又能无间隙的粘合起来。重载了*,++,==,!=,=运算符。用以操作复杂的数据结构。容器提供迭代…

MTSET可溶于DMSO、DMF、THF等有机溶剂,并在水中有轻微的溶解性,91774-25-3

一、基本信息 中文名称:[2-(三甲基铵)乙基]甲硫基磺酸溴;MTSET巯基反应染料 英文名称:MTSET;[2-(Trimethylammonium)ethyl]methanethiosulfonate Bromide CAS号:91774-25-3 分子式:C6H16BrNO2S2 分子量…