【Python 基础篇】Python 文件操作

news2024/9/22 9:50:12

文章目录

    • 导言
    • 一、文件操作的作用
    • 二、文件的基本操作
      • 1、打开文件
      • 2、读写文件
        • ① 读取文件
        • ② 写入文件
      • 3、关闭文件
    • 三、文件备份
    • 四、文件和文件夹的操作
    • 结语

导言

在编程领域中,文件操作是一项基础且常见的任务。无论是读取配置文件、处理数据文件,还是备份文件和管理文件夹,Python 提供了丰富的文件操作功能,使我们能够轻松处理各种文件操作任务。本篇博客将介绍 Python 中文件操作的基本知识和常用技巧,助您更好地掌握文件的读写和管理。

一、文件操作的作用

文件操作是指通过编程语言对文件进行读取、写入、备份和管理等操作。文件操作的作用包括但不限于以下几个方面:

  1. 数据读取和处理:通过读取文件中的数据,我们可以对数据进行分析、处理和转换,从而实现各种数据操作和计算。
  2. 配置文件管理:许多应用程序使用配置文件来存储参数和设置,通过文件操作,我们可以读取和修改配置文件,实现应用程序的配置管理。
  3. 文件备份和恢复:文件备份是重要的数据保护措施之一,通过文件操作,我们可以创建文件的备份副本,以防止数据丢失或损坏。
  4. 文件和文件夹管理:文件操作还可以用于创建、复制、移动和删除文件和文件夹,使文件系统的管理更加便捷和高效。

了解文件操作的基本知识和技巧,对于处理各种文件操作任务具有重要的意义。

二、文件的基本操作

文件的基本操作包括打开、读写和关闭等步骤。下面是文件的基本操作示例:

1、打开文件

使用 Python 的内置函数 open() 可以打开一个文件,指定文件名和打开模式。打开模式常用的有以下四个:

  • 'r':只读模式,用于读取文件的内容。
  • 'w':写入模式,用于写入文件的内容。如果文件已存在,会覆盖原有内容;如果文件不存在,会创建新文件。
  • 'a':追加模式,用于在文件末尾追加内容。如果文件不存在,会创建新文件。
  • 'x':独占创建模式,用于创建新文件。如果文件已存在,会引发异常。

示例代码如下:

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

其它更多模式见下表:

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

2、读写文件

打开文件后,我们可以使用不同的方法进行文件的读写操作。

① 读取文件

# 读取整个文件内容
content = file.read()
print(content)

# 逐行读取文件内容
for line in file:
    print(line)

② 写入文件

# 写入内容到文件
file.write('Hello, World!\n')
file.write('This is an example.')

3、关闭文件

文件操作完成后,应该及时关闭文件,释放系统资源。

# 关闭文件
file.close()

在文件操作过程中,可能会出现异常情况(如文件不存在或权限问题),为了确保文件的正确关闭,我们可以使用异常处理机制,将文件关闭操作放在 finally 块中。

三、文件备份

文件备份是重要的数据保护措施之一。在 Python 中,我们可以通过文件操作实现文件的备份。

以下是一个简单的文件备份示例:

import shutil

# 备份文件
shutil.copy2('example.txt', 'example_backup.txt')

使用 shutil 模块的 copy2() 函数可以将一个文件复制到指定位置,实现文件的备份操作。

四、文件和文件夹的操作

除了基本的文件读写和备份操作外,Python 还提供了许多功能强大的模块和方法,用于文件和文件夹的管理。

  • 文件重命名:

    import os
    
    # 重命名文件
    os.rename('old_file.txt', 'new_file.txt')
    
  • 文件删除:

    import os
    
    # 删除文件
    os.remove('example.txt')
    
  • 文件夹创建:

    import os
    
    # 创建文件夹
    os.mkdir('my_folder')
    
  • 文件夹删除:

    import os
    
    # 删除文件夹
    os.rmdir('my_folder')
    

通过以上示例代码,我们可以实现对文件和文件夹的重命名、删除和创建等操作。

结语

本篇博客介绍了 Python 中文件操作的基本知识和常用技巧。文件操作是编程中常见且重要的任务,掌握文件的读写和管理技巧对于处理各种文件操作任务至关重要。

通过学习本文介绍的内容,您已经了解了文件的基本操作步骤、文件备份和文件夹操作等技巧。同时,Python 还提供了更多强大的库和模块(如 shutilos.path 等),可用于处理更复杂的文件操作任务。

希望本篇博客对您在 Python 文件操作方面提供了一些帮助。祝您在文件处理的旅程中取得成功!

在这里插入图片描述

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

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

相关文章

MySQL保姆安装教程

文章目录 前言一、MySQL官网二、离线安装包步骤三、环境配置四、验证安装是否成功在这里插入图片描述 五、可视化工具连接总结 前言 对于第一次安装mysql是有点难度,现在我会把安装流程搞出来。 一、MySQL官网 MySQL Installer 8.0.33安装(不想安装这个…

Windows下redis的安装与使用

一、下载 redis.io 官网没有Windows版本的,需要去redis-windows下载。 二、使用与配置 2.1 解压安装 redis的Windows版本,有.msi和.zip两种格式。这里使用更为方便,直接解压就可以使用的.zip格式。 将Redis-x64-5.0.14.1.zip解压至D盘的…

【Java-SpringBoot+Vue+MySql】Day3.3-MybatisPlus说明与使用

目录 一、MybatisPlus快速入门 1、知识轰炸 2、实操演练 (1)新建项目 (2)添加依赖 (3)添加配置 (4)添加映射层 (5)启动类中添加注解 (6&a…

【通过Data Studio连接openGauss】---快速入门

【通过Data Studio连接openGauss】---快速入门 🔻 一、访问openGauss🔰 1.1 确认连接信息(单节点)🔰 1.2 使用gsql访问openGauss(本地连接数据库)🔰 1.3 使用gsql访问openGauss&…

玩机搞机------安卓手机分区操作中的的各种工具 提取分区 备份分区 檫除分区 推荐一

喜欢玩机搞机的朋友们经常对手机系统进行安装玩机操作。但有时候指令类输入和操作步骤比较繁琐。耽误时间。有些工具就比较方便操作。陆续会整理一些玩机搞机中的简单工具给爱好者使用。本期整理一些关于手机分区的工具推荐 💔💔💔 AB AVB分…

Android的详细介绍

目录: Android诞生 Android系统架构 Android系统版本 Android应用开发特色 Android诞生 2003年10月,Andy Rubin等人创建了Android公司,并组建了Android团队。 2005年8月17日,Google低调收购了成立仅22个月的高科技企…

【新星计划·2023】Linux目录结构

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 本文将讲解Linux目录结构与功能,以及目录解释,最近这段时间会持续更新关于Linux的基础知识,期待你的…

机器视觉初步6-1:基于梯度的图像分割

把基于梯度的图像分割单独拿出来。 文章目录 一、图像梯度相关算子的原理1. Sobel算子2. Prewitt算子3. Roberts算子 二、python和halcon算子实现1.python实现2.halcon实现 基于梯度的图像分割方法利用像素之间的梯度信息来进行图像分割。 梯度 1是图像中像素灰度值变化最快的…

macOS Monterey 12.6.7 (21G651) 正式版发布,ISO、IPSW、PKG 下载

macOS Monterey 12.6.7 (21G651) 正式版发布,ISO、IPSW、PKG 下载 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持…

macOS Big Sur 11.7.8 (20G1351) 正式版 ISO、PKG、DMG、IPSW 下载

macOS Big Sur 11.7.8 (20G1351) 正式版 ISO、PKG、DMG、IPSW 下载 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Window…

Windows 10 |VMware开启虚拟化的最全面说明

前言: Windows作为工作机,对于计算机系的同学来说,主要是在于利用图形化的界面直观的创建虚拟机(典型的有代表性的是virtualbox和VMware这两家公司的桌面级虚拟化软件),尤其是小白这样的初学者&#xff0c…

吴恩达ChatGPT《Prompt Engineering》笔记

ChatGPT 提示词工程师教程 1. 课程介绍 1.1 ChatGPT 相关术语 LLM:Large Language Model,大语言模型 Instruction Tuned LLM:经过指令微调的大语言模型 Prompt:提示词 RLHF:Reinforcement Learning from Human F…

英特尔oneAPI人工智能黑客松 - 机器视觉挑战案例

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

K8S 生态周报| Kubernetes 公布两个全版本受影响的漏洞

“ 「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。 ” 大家好,我是张晋涛。 KIND v0.20.0 正式发布 KIND 是我一直参与,也日常一直在使用的项目,用于快速的在本地或者 C…

强化学习:AI领域的下一步里程碑

第一章:引言 近年来,人工智能(AI)的快速发展引起了全球范围内的广泛关注。在AI的众多技术领域中,强化学习(Reinforcement Learning)作为一种类似于人类学习的方式,在解决复杂问题方…

VMware虚拟机中安装Ubuntu20.04小白教程

安装Ubuntu20.04 1.Ubuntu镜像下载2.配置Ubuntu 2.1创建新的虚拟机,进入新建虚拟机向导2.2选择自定义类型配置2.3选择硬件兼容性2.4选择稍后安装操作系统2.5选择客户机操作系统2.6命名虚拟机2.7处理器配置2.8 虚拟机内存2.9配置网络类型2.10选择I/O控制器类型2.11选…

webpakc原理之开发一个清除console.log(xxx)的loader

一、webpack中清除console的方法 当然想要清除console我们可以使用babel-loader结合babel-plugin-transform-remove-console插件来实现。 安装babel-loader和babel-plugin-transform-remove-console插件 npm install babel-loader babel-plugin-transform-remove-console -D…

TOGAF10®标准中文版--(阶段B — 业务架构)方法

4.5 方法 业务架构是能力、端到端价值交付、信息和组织结构的整体、多维业务视图的表示;以及这些业务视图和战略、产品、政策、计划和利益相关者之间的关系。 业务架构将业务元素与业务目标和其他领域的要素联系起来。 4.5.1 概述 业务架构知识是任何其他领域&a…

HIFUSE:用于医学图像分类的分层多尺度特征融合网络

文章目录 HIFUSE: HIERARCHICAL MULTI-SCALE FEATURE FUSION NETWORK FOR MEDICAL IMAGE CLASSIFICATION摘要本文方法实验结果 HIFUSE: HIERARCHICAL MULTI-SCALE FEATURE FUSION NETWORK FOR MEDICAL IMAGE CLASSIFICATION 摘要 在卷积神经网络(CNN)的…

Spring核心容器——从配置文件到注解开发 创建对象+成员变量赋值 增强方法

目录 引出Spring入门案例初识Spring入门案例1----用配置文件实现 Druid JDBCTemplate dao1.之前的方式:new对象2.用配置文件的方法把new对象交给Spring3.如果要用对象,从spring的容器中获取ac.getBean("userDao");4.实体类和dao层的代码--问…