Python文件操作与输入输出:从基础到高级应用
文章目录
- 🍀引言
- 🍀文件操作基础
- 🍀上下文管理器与文件自动关闭
- 🍀文件的迭代与逐行读取
- 🍀文件的其他常见操作
- 🍀输入输出基础
- 🍀 文件输入输出
- 🍀格式化输出
- 🍀高级文件操作
- 🍀学生管理系统案例
- 🍀结语
🍀引言
Python作为一门功能强大且易于学习的编程语言,在文件操作和输入输出方面提供了丰富的功能和工具。本文将从基础知识开始,逐步深入探讨Python中的文件操作和输入输出技术,帮助读者在编程过程中更好地利用这些功能。
🍀文件操作基础
在Python中,文件操作是一项重要的任务。我们首先要了解如何打开、读取和写入文件。
- 打开文件:
使用open()函数可以打开一个文件,并返回一个文件对象。你可以指定文件路径、文件名以及打开模式(读取、写入等)。
file_path = 'example.txt'
file = open(file_path, 'r') # 以只读模式打开文件
- 读取文件内容:
通过文件对象的read()方法可以读取文件的内容。你可以一次性读取整个文件,也可以逐行读取。
content = file.read() # 读取整个文件内容
- 写入文件内容
使用文件对象的write()方法可以将数据写入文件。需要注意的是,写入操作默认会覆盖文件原有内容,如果要追加内容,可以使用追加模式。
output_file = open('output.txt', 'w') # 以写入模式打开文件
output_file.write("Hello, world!")
🍀上下文管理器与文件自动关闭
Python引入了上下文管理器,让文件操作更加便捷。通过with语句打开文件,当代码块执行完毕后,文件会自动关闭,避免了手动关闭文件可能引发的问题。
with open('example.txt', 'r') as file:content = file.read()
# 文件会在代码块执行完毕后自动关闭
🍀文件的迭代与逐行读取
Python允许你将文件对象当作迭代器来使用,逐行读取文件内容
with open('example.txt', 'r') as file:for line in file:print(line)
🍀文件的其他常见操作
除了基本的读写操作,还有其他有用的文件操作方法,比如获取文件大小、判断文件是否存在等。
import osfile_size = os.path.getsize('example.txt') # 获取文件大小
file_exists = os.path.exists('example.txt') # 判断文件是否存在
🍀输入输出基础
在Python中,通过标准输入和标准输出可以进行基本的输入和输出操作。
- 标准输入:
使用input()函数可以从标准输入获取用户输入的内容。
name = input("请输入你的名字:")
print("你好,", name)
- 标准输出:
使用print()函数可以将内容输出到标准输出。
print("Hello, world!")
🍀 文件输入输出
with open('output.txt', 'w') as file:file.write("Hello, world!")
🍀格式化输出
使用格式化字符串,你可以将变量的值插入到输出文本中。
age = 25
print("我今年{}岁。".format(age))
🍀高级文件操作
Python的标准库和第三方库提供了更多高级的文件操作功能,例如处理CSV、JSON、XML等格式的文件,以及在网络上下载文件等
🍀学生管理系统案例
功能要求:
添加学生姓名和成绩。
显示所有学生的姓名和成绩。
将学生信息保存到文件。
从文件中加载学生信息。
class Student:def __init__(self, name, score):self.name = nameself.score = scoredef __str__(self):return f"姓名: {self.name}, 成绩: {self.score}"def add_student(students):name = input("请输入学生姓名: ")score = float(input("请输入学生成绩: "))student = Student(name, score)students.append(student)print("学生信息已添加。")def display_students(students):print("学生信息:")for student in students:print(student)def save_to_file(students, file_path):with open(file_path, 'w') as file:for student in students:file.write(f"{student.name},{student.score}\n")print("学生信息已保存。")def load_from_file(file_path):students = []try:with open(file_path, 'r') as file:for line in file:name, score = line.strip().split(',')students.append(Student(name, float(score)))except FileNotFoundError:passreturn studentsdef main():students = load_from_file('students.txt')while True:print("\n学生成绩管理系统")print("1. 添加学生信息")print("2. 显示学生信息")print("3. 保存学生信息到文件")print("4. 退出")choice = input("请选择操作:")if choice == '1':add_student(students)elif choice == '2':display_students(students)elif choice == '3':save_to_file(students, 'students.txt')elif choice == '4':print("感谢使用学生成绩管理系统!")breakelse:print("无效的选择,请重新输入。")if __name__ == "__main__":main()
运行结果如下





这个案例实现了一个简单的学生成绩管理系统,你可以根据提示选择不同的操作。通过输入和输出,你可以添加学生信息、显示学生信息、保存学生信息到文件,并从文件加载学生信息。这个案例综合应用了前面介绍的文件操作、输入输出以及类的概念。
在运行案例时,你可以输入学生的姓名和成绩,然后选择显示学生信息、保存信息到文件或退出系统。学生信息会被保存到文件中,下次运行程序时可以加载之前保存的信息。
通过这个案例,你可以更好地理解文件操作和输入输出在实际项目中的应用,同时也加深对类和对象的理解。你可以根据这个案例的基础上进行拓展,添加更多功能,如成绩统计、成绩排序等。
🍀结语
文件操作和输入输出是Python编程中不可或缺的一部分。本文介绍了文件操作的基本方法,以及如何使用上下文管理器来确保文件的正确关闭。此外,我们还探讨了输入输出的基本方法和格式化输出。通过掌握这些基础知识,你将能够更自如地处理文件和数据输入输出,为你的Python编程之旅奠定坚实的基础。
无论是处理文本文件、日志文件,还是与用户进行交互,Python的文件操作和输入输出功能都将伴随着你的编程旅程,为你提供强大的支持。在掌握了这些基础之后,你还可以深入学习更多高级的文件处理技术,为你的项目开发带来更多可能性。

挑战与创造都是很痛苦的,但是很充实。
相关文章:
Python文件操作与输入输出:从基础到高级应用
文章目录 🍀引言🍀文件操作基础🍀上下文管理器与文件自动关闭🍀文件的迭代与逐行读取🍀文件的其他常见操作🍀输入输出基础🍀 文件输入输出🍀格式化输出🍀高级文件操作&am…...
leetcode算法题--找出最安全路径
原题链接:https://leetcode.cn/problems/find-the-safest-path-in-a-grid/description/ func maximumSafenessFactor(grid [][]int) int {n : len(grid)type pair struct {x inty int}p : make([]pair, 0)dis : make([][]int, n)for i : range dis {dis[i] make([…...
神经网络基础-神经网络补充概念-34-正则化
概念 正则化是一种用于控制模型复杂度并防止过拟合的技术,在机器学习和深度学习中广泛应用。它通过在损失函数中添加一项惩罚项来限制模型的参数,从而使模型更倾向于选择简单的参数配置。 理解 L1 正则化(L1 Regularization)&a…...
idea打jar包
目录 1、打包设置 2、打包介绍 3、开始打包 1、打包设置 先设置要打包的模块信息,即打包进去的内容。如下图所示:File --> Project Structure --> Artifacts,点击+号完成模块创建,其中有两种方式:…...
民安汇智(第三方旅游服务暗访)开展旅游景区度假区明察暗访复核检查服务
近日,民安汇智受客户委托对该市某旅游景区度假区进行明察暗访复核检查工作。 民安汇智通过实地调研、体验式暗访等各种方式对该市范围内3A级以上旅游景区、旅游度假区及2022年新创建的3A级以上旅游景区、旅游度假区进行明察暗访复核检查,对照《旅游景区…...
《游戏编程模式》学习笔记(六)单例模式 Singleton Pattern
单例模式的定义 保证一个类只有一个实例,并且提供了访问该实例的全局访问点。 定义这种东西一般都是不说人话的,要想要理解这句话的意思,我们得把它揉开了才能搞明白。 我们先看前半句 “保证一个类只有一个实例”,单例一般使用…...
《Go 语言第一课》课程学习笔记(二)
初窥门径:一个 Go 程序的结构是怎样的? 创建“hello,world”示例程序 在 Go 语言中编写一个可以打印出“hello,world”的示例程序,我们只需要简单两步,一是创建文件夹,二是开始编写和运行。通…...
神经网络基础-神经网络补充概念-26-前向和反向传播
简单比较 前向传播(Forward Propagation): 前向传播是神经网络中的正向计算过程,用于从输入数据开始,逐层计算每个神经元的输出值,直到得到最终的预测值。在前向传播过程中,我们按以下步骤进行…...
Gin路由组
Gin路由组 文章目录 Gin路由组接收任意请求的路由接收没有被定义的路由路由组完整代码 接收任意请求的路由 区别于以往的GET()函数只能处理一种请求,Any()函数可以处理各种函数 语法: func (group *RouterGroup) Any(relativePath string, handlers ...HandlerFunc){} 案例: …...
安防监控视频云存储平台EasyNVR通道频繁离线的原因排查与解决
安防视频监控汇聚EasyNVR视频集中存储平台,是基于RTSP/Onvif协议的安防视频平台,可支持将接入的视频流进行全平台、全终端分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求…...
Redis-分布式锁!
分布式锁,顾名思义,分布式锁就是分布式场景下的锁,比如多台不同机器上的进程,去竞争同一项资源,就是分布式锁。 分布式锁特性 互斥性:锁的目的是获取资源的使用权,所以只让一个竞争者持有锁,这…...
Unity如何把游戏导出成手机安装包
文章目录 前言使用环境步骤添加场景构建APK 前言 本文章主要演示了,如何将制作好的游戏,导出成APK,安装到手机上。 使用环境 Unity2022。 步骤 首先打开你的项目,然后选择菜单栏的“File” > “Build Settings…”…...
使用爱校对软件保证公文材料质量的关键步骤
在日常的公文处理中,保证材料质量是每个企业和机构都追求的目标。而要实现这个目标,使用正确的工具是关键。爱校对软件正是这样一款专业的校对工具,它可以帮助我们保证公文材料的质量。接下来,让我们一起来看看使用爱校对软件保证…...
Spring Data Elasticsearch 的简单使用
目录 一、简介 二、配置 三、映射 四、 常用方法 五、操作(重点) 1、对索引表的操作 2、对文档的操作(重点) (1)、添加文档 (2)、删除文档 (3)、查询…...
2024」预备研究生mem-角平分线定理中线定理垂线定理、射影定理
一、角平分线定理 二、中线定理 三、垂线定理、射影定理 垂线定理 射影定理: 四、课后题...
nginx部署时http接口正常,ws接口404
可以这么配置 map $http_upgrade $connection_upgrade {default upgrade; close; }upstream wsbackend{server ip1:port1;server ip2:port2;keepalive 1000; }server {listen 20038;location /{ proxy_http_version 1.1;proxy_pass http://wsbackend;proxy_redirect off;proxy…...
数学建模的概念和学习方法(什么是数学建模)
一、初步认识数学建模 数学建模是将数学方法和技巧应用于实际问题的过程。它涉及使用数学模型来描述和分析现实世界中的现象、系统或过程,并通过数学分析和计算来预测、优化或解决问题。数学建模可以应用于各种领域,包括自然科学、工程、经济学、环境科学…...
ChatGPT在智能安全监测和入侵检测中的应用如何?
ChatGPT在智能安全监测和入侵检测领域具有潜在的应用价值。虽然ChatGPT主要是一个基于自然语言处理的模型,但结合其他技术和领域专业知识,它可以用于生成和分析文本数据,提供实时安全警报、威胁情报等,从而在安全监测和入侵检测方…...
智能数据建模软件DTEmpower 2023R2新版本功能介绍
DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件,致力于帮助工程师及工科专业学生,利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析,建立高质量的数据模型,实现快速设计评估、实时仿真预测、系统参数预警、设…...
BDA初级分析——认识SQL,认识基础语法
一、认识SQL SQL作为实用技能,热度高、应用广泛 在对数据分析人员的调查中SQL长期作为热度排名第-一的编程语言超过Python和R SQL:易学易用,高效强大的语言 SQL:Structured Query Language 结构化查询语言 SQL:易学…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
