Python语言的文件操作
Python语言的文件操作
在现代编程中,文件操作是每个程序员都需要掌握的基本技能之一。无论是数据的持久化存储、日志的记录,还是配置信息的读取,文件操作都是不可或缺的一部分。Python作为一种高级编程语言,其简单易用的文件操作方式使得处理文件变得更加高效。本文将深入探讨Python的文件操作,包括打开、读取、写入和关闭文件等基本操作,同时还会介绍一些更高级的功能,如文件的上下文管理、二进制文件操作和异常处理。
一、基本文件操作
1.1 文件打开
在Python中,使用内置的open()函数可以打开一个文件。open()函数的基本语法如下:
python file = open('filename', mode)
filename:要打开的文件名(包括路径)。mode:打开文件的模式,主要包括:'r':只读模式(默认模式)。文件必须存在。'w':写入模式。如果文件存在,则覆盖文件;如果文件不存在,则创建新文件。'a':追加模式。文件指针放在文件末尾,如果文件存在,则在后面追加内容;如果文件不存在,则创建新文件。'b':二进制模式。用于处理二进制文件(如图片、音频等)。't':文本模式(默认模式)。用于处理文本文件。
例如,打开一个文本文件进行读取:
python file = open('example.txt', 'r')
1.2 文件读取
打开文件后,可以使用不同的方法读取文件内容。最常用的读取方法有:
read(size):读取文件的全部内容,或读取指定大小的字节数。readline():读取文件的一行。readlines():读取文件的所有行,返回一个列表。
示例代码:
```python
读取整个文件
content = file.read() print(content)
读取文件的一行
line = file.readline() print(line)
读取所有行
lines = file.readlines() for line in lines: print(line.strip()) ```
1.3 文件写入
在写入文件时,首先需要以写入模式打开文件。可以使用write()方法将字符串写入文件,使用writelines()方法可以将一个字符串列表写入文件。
示例代码:
python file = open('output.txt', 'w') file.write('Hello, World!\n') file.writelines(['Line 1\n', 'Line 2\n', 'Line 3\n']) file.close()
1.4 关闭文件
打开文件后,使用完毕后应当关闭文件,以释放系统资源。可以调用close()方法来关闭文件:
python file.close()
二、上下文管理
使用with语句可以更方便地管理文件操作,它会在使用结束后自动调用close()方法,即使发生异常也能保证文件的正确关闭,从而避免资源的泄露。
示例代码:
python with open('example.txt', 'r') as file: content = file.read() print(content)
三、二进制文件操作
在处理图片、音频等二进制文件时,需要以二进制模式打开文件。在二进制模式下,读取和写入的都是字节流。
打开文件的方式如下:
python with open('image.png', 'rb') as file: # 读取二进制文件 data = file.read() # 处理二进制数据
写入二进制文件的方式如下:
python with open('output_image.png', 'wb') as file: # 写入二进制文件 file.write(data)
四、异常处理
进行文件操作时,可能会出现多种异常情况,比如文件不存在、没有权限等。在Python中,可以使用try...except块来捕获和处理这些异常。
示例代码:
python try: with open('non_existent_file.txt', 'r') as file: content = file.read() except FileNotFoundError: print("文件不存在,请检查文件名。") except PermissionError: print("文件权限不足。") except Exception as e: print(f"发生了一个错误:{e}")
五、文件的其他操作
5.1 文件指针
在文件操作中,文件指针是一个重要的概念。文件指针指向当前的读取或写入位置。使用seek()方法可以改变文件指针的位置。
python with open('example.txt', 'r') as file: file.seek(0) # 将指针移到文件开始 first_line = file.readline() print(first_line)
5.2 获取文件信息
Python的os库提供了一些方法来获取文件的信息,比如文件的大小、修改时间等。
```python import os
file_info = os.stat('example.txt') print(f"文件大小:{file_info.st_size} 字节") print(f"最后修改时间:{file_info.st_mtime}") ```
5.3 文件目录操作
Python的os库还提供了对文件和目录的操作,如创建目录、删除文件等。
- 创建目录:
python os.mkdir('new_directory')
- 删除文件:
python os.remove('unwanted_file.txt')
六、总结
在本文中,我们探讨了Python语言的文件操作,包括如何打开、读取、写入和关闭文件,以及上下文管理、二进制文件操作、异常处理、文件指针、文件信息和目录操作等。Python提供了简单易用的文件操作功能,使得程序员能够快速高效地处理文件。在实际开发中,掌握这些基本操作和高级功能,将大大提高我们的工作效率。
掌握了Python的文件操作,对于处理数据、记录日志以及配置文件等常见任务都有着非常重要的意义。希望本文能够帮助读者更好地理解和使用Python进行文件操作。
相关文章:
Python语言的文件操作
Python语言的文件操作 在现代编程中,文件操作是每个程序员都需要掌握的基本技能之一。无论是数据的持久化存储、日志的记录,还是配置信息的读取,文件操作都是不可或缺的一部分。Python作为一种高级编程语言,其简单易用的文件操作…...
前端Pako.js 压缩解压库 与 Java 的 zlib 压缩与解压 的互通实现
工具介绍: pako.js 前端压缩解压的库(包含 zlib 和gzip 两种实现,这里只介绍 zlib) pako 2.0.4 API documentation Java8 原生支持 zlib 和 gzip 业务场景 因为数据太大,网络环境不可控。故前端需要将数据 A 先压缩…...
unity 打包出来的所有执行文件内容打包成一个exe程序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、使用Enigma Virtual Box1.下载安装包(根据需要32位还是64位。一般是64位)2.改个语言,方便使用(改了后重启才…...
华为管理变革之道:组织文化与活力
目录 企业文化是什么? 为什么活下去是华为的文化? 活下来,是华为公司的最低纲领,也是华为公司的最高纲领! 资源终会枯竭,唯有文化才能生生不息 企业文化之一:以客户为中心 企业文化之二&a…...
仿闲鱼的二手交易小程序软件开发闲置物品回收平台系统源码
市场前景 闲置物品交易软件的市场前景广阔,主要基于以下几个方面的因素: 环保意识提升:随着人们环保意识的增强,越来越多的人开始关注资源的循环利用,闲置物品交易因此受到了广泛的关注。消费升级与时尚节奏加快&…...
PostgreSQL CRUD 操作指南
PostgreSQL CRUD 操作指南 连接数据库 -- 连接到特定数据库 psql -U postgres -d xianxia-- 列出所有数据库 \l-- 切换数据库 \c xianxia-- 列出所有表 \dt-- 查看表结构 \d table_name基本 CRUD 操作 CREATE(创建) -- 创建新表 CREATE TABLE users …...
4X4规模S盒分量布尔函数计算工具(附各大常见分组加密算法S盒查找表和其对应分量布尔函数截图)
文章结尾有S盒分量布尔函数计算工具下载地址 Serpent {0x3,0x8,0xF,0x1,0xA,0x6,0x5,0xB,0xE,0xD,0x4,0x2,0x7,0x0,0x9,0xC} LBlock {0xE,0x9,0xF,0x0,0xD,0x4,0xA,0xB,0x1,0x2,0x8,0x3,0x7,0x6,0xC,0x5} GOST {0x4,0xA,0x9,0x2,0xD,0x8,0x0,0xE,0x6,0xB,0x1,0xC,0x7,0xF,0x5,0…...
模拟——郑益慧_笔记1_绪论
B站视频链接 模电是数电的基础;参考书: 模拟电子技术基础(第四版)华成英、童诗白主编,高等教育出版社;电子技术基础 模拟部分 康华光主编,高等教育出版社; 电子技术的发展史 电子…...
金融租赁系统的发展与全球化战略实施探讨
内容概要 金融租赁系统的演变并非一帆风顺,像一场跌宕起伏的电影。首先,咱们得看看它的起源及现状。随着经济的快速发展,金融租赁逐渐作为一种灵活的融资手段崭露头角。在中国市场中,企业对设备和技术更新换代的需求日益迫切&…...
vue3入门教程:计算属性
计算属性的基本用法 计算属性是通过computed函数创建的,它接受一个getter函数作为参数,并返回一个只读的响应式ref对象。该ref对象通过.value属性暴露getter函数的返回值。 <template><div><p>原始数据: {{ count }}</p><p…...
Docker怎么关闭容器开机自启,批量好几个容器一起操作?
环境: WSL2 docker v25 问题描述: Docker怎么关闭容器开机自启,批量好几个容器一起操作? 解决方案: 在 Docker 中,您可以使用多种方法来关闭容器并配置它们是否在系统启动时自动启动。以下是具体步骤和…...
shell脚本(全)
shell脚本概述 第一个shell脚本 shell注释 shell变量 shell位置参数 shell字符串 shell内置命令 shell命令替换 输出 流程控制IF export命令 退出脚本 运行Shell脚本 实例导航 shell脚本概述 在说什么是shell脚本之前,先说说什么是shell。 从程序员的…...
华为手机建议使用adb卸载的app
按需求自行卸载 echo 卸载智慧搜索 adb shell pm uninstall -k --user 0 com.huawei.search echo 卸载智慧助手 adb shell pm uninstall -k --user 0 com.huawei.intelligent echo 卸载讯飞语音引擎 adb shell pm uninstall -k --user 0 com.iflytek.speechsuite echo 卸载快应…...
论文解读 | EMNLP2024 一种用于大语言模型版本更新的学习率路径切换训练范式
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 王志豪,厦门大学博士生 刘诗雨,厦门大学硕士生 内容简介 新数据的不断涌现使版本更新成为大型语言模型(LLMsÿ…...
Java基础(Json和Java对象)
定义好实体类 package com.pyb.pojo; /*** version 1.0* Author 彭彦彬* Date 2024/12/24 20:47* 注释*/ public class Person {private String username;private String password; public Person() {} public Person(String username, String password) {this.username…...
Linux 中检查 Apache Web Server (httpd) 正常运行时间的 4 种方法
注:机翻,未校。 4 Ways To Check Uptime of Apache Web Server (httpd) on Linux November 28, 2019 by Magesh Maruthamuthu We all know about the purpose of uptime command in Linux. 我们都知道 Linux 中 uptime 命令的目的。 It is used to c…...
Linux驱动开发--字符设备驱动开发
一、概述 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节 流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI, LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 Linux 应用程序对驱动程…...
MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式) 本文目录: 零、时光宝盒🌻 一、简介 二、安装 三、使用方法 3.1、使用命令行形式 3.2、用 Python 调用 四、总结 五、参考资料 零、时光宝盒🌻 &a…...
一文彻底拿捏DevEco Studio的使用小技巧
程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前! 0.安装DevEco Studio DevEco Studio面向HarmonyOS应用及元服务开发者提供的集成开…...
R9000P键盘失灵解决办法
问题描述 突然,就是很突然,我买的R9000P 2024不到三个月,键盘突然都不能用了,是所有键盘按键都无效的那种。(可以使用外接键盘) 解决办法 我本科室友说的好哈,全坏全没坏。 (该解…...
基于Vue的社区老年人健康管理与服务预约网站[vue]-计算机毕业设计源码+LW文档
摘要:随着人口老龄化的加剧,社区老年人健康管理与服务预约的需求日益增长。为了提高社区老年人健康管理的效率和服务质量,本文设计并实现了一个基于Vue的社区老年人健康管理与服务预约网站。文章详细阐述了系统的开发背景、相关技术、需求分析…...
Dockerfile从零入门:手把手教你打包Node.js应用,解决镜像构建的常见坑
代码写完了,在本地跑得好好的,怎么把它打包成Docker镜像,部署到服务器上?答案就是Dockerfile。今天这篇文章,我们用Node.js应用做例子,从零开始写一个Dockerfile,把应用打包成镜像,顺…...
Unpoly表单处理终极教程:实时验证与乐观渲染实践
Unpoly表单处理终极教程:实时验证与乐观渲染实践 【免费下载链接】unpoly Progressive enhancement for HTML 项目地址: https://gitcode.com/gh_mirrors/un/unpoly Unpoly是一个强大的渐进式增强HTML框架,能够显著提升Web应用的表单处理体验。通…...
PUBG实时数据雷达:开源游戏辅助工具的战场信息解决方案
PUBG实时数据雷达:开源游戏辅助工具的战场信息解决方案 【免费下载链接】PUBG-maphack-map this is a working copy online-map from jussihi/PUBG-map-hack, use nodejs webserver instead of firebase. 项目地址: https://gitcode.com/gh_mirrors/pu/PUBG-mapha…...
OSI模型每一层的主要功能是什么?七层详解+流程图+面试必背
OSI模型每一层的主要功能是什么?七层详解流程图面试必背一、前言二、什么是 OSI 七层模型?三、OSI 七层模型架构图四、数据传输流程:封装与解封装五、OSI 七层每一层主要功能(序号版,面试直接背)5.1 第7层&…...
别再只查表了!用MATLAB调用Python包(如NumPy, Pandas)的完整环境配置教程
MATLAB与Python强强联合:从环境配置到实战调用的全流程指南 当MATLAB遇上Python,会碰撞出怎样的火花?作为两个在科学计算领域举足轻重的工具,MATLAB以其强大的矩阵运算和可视化能力著称,而Python则凭借丰富的第三方库生…...
3步终结磁盘焦虑:Windows Cleaner让系统性能提升200%的实战指南
3步终结磁盘焦虑:Windows Cleaner让系统性能提升200%的实战指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 现象诊断:当C盘爆红成为工…...
[Python3高阶编程] - 再论 WSGI、Web服务器和Python Web应用的关系
一、核心关系:WSGI 是“接口标准”,Web 服务器是“实现者”简单定义组件类型职责代表实现WSGI协议标准(PEP 3333)定义 Web 服务器与 Python 应用之间的通信接口规范:• 函数签名• 参数格式• 数据流向• 错误处理不是…...
杰理之变声接口异常死机问题【篇】
void audio_voice_changer_mode_switch(u16 uuid, char *name, VOICE_CHANGER_MODE mode)...
SLIC超像素分割实战:从原理到OpenCV代码实现(附完整示例)
SLIC超像素分割实战:从原理到OpenCV代码实现(附完整示例) 在计算机视觉领域,图像分割一直是个基础而关键的课题。想象一下,当你需要让计算机理解一张照片时,直接处理数百万个像素显然效率太低——这就好比…...
