广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python基本文件操作实用指南
  • 107
分享到

Python基本文件操作实用指南

2024-04-02 19:04:59 107人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、前言二、创建和打开文件1.打开一个不存在的文件时先创建该文件2.以二进制形式打开文件3.打开文件时指定编码方式三、关闭文件四、打开文件时使用with语句五、写入文件内容六、读

一、前言

python中,内置了文件(File)对象。在使用文件对象时,首先需要通过内置的open()方法创建一个文件对象,然后通过该对象提供的方法进行一些基本文件操作。例如,可以使用文件对象的write()方法向文件中写入内容,以及使用close()方法关闭文件等。下面将介绍如何应用Python的文件对象进行基本文件操作。

二、创建和打开文件

在Python中,想要操作文件需要先创建或者打开指定的文件并创建文件对象。这可以通过内置的open()函数实现。open()函数的基本语法格式如下:

file = open(filename[,mode[,buffering]])

参数说明:

  • file:被创建的文件对象
  • filename:要创建或打开文件的文件名称,需要使用单引号或双引号括起来。如果要打开的文件和当前文件在同一个目录下,那么直接写文件名即可,否则需要指定完整路径。例如,要打开当前路径下的名称为status.txt的文件,可以使用“status.txt”。
  • mode:可选参数,用于指定文件的打开模式。其参数值如下面所示。默认打开模式为只读(即r)
说明
r以只读方式打开文件。文件的指针将会放在文件的开头。
rb以二进制格式打开文件,并采取只读模式。文件的指针将会放在文件的开头。一般用于非文本文件,如照片、音乐等。
r+打开文件后,可以读取文件内容,也可以写入新的内容覆盖原有内容(从文件开头进行覆盖)
rb+以二进制格式打开文件,并采取写模式。文件的指针将会放在文件的开头。一般用于非文本文件,如图片、声音等。
w以只写模式打开文件
wb以二进制格式打开文件,并且采用只写模式。一般用于非文本文件,如图片、声音等
w+打开文件后,先清空原有内容,使其变为一个空的文件,对这个空文件有读写权限
wb+以二进制格式打开文件,并且采用读写模式。一般用于非文本文件,如图片、声音等
a以追加模式打开一个文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入
ab以二进制格式打开一个文件,并采用追加模式。如果该文件已存在,文件指针将会放在文件的结尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入
a+已读写模式打开文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入
ab+以二进制格式打开一个文件,并采用追加模式。如果该文件已经存在,文件指针将会放在文件的结尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入

1.打开一个不存在的文件时先创建该文件

在默认的情况下,使用open()函数打开一个不存在的文件,会抛出如图所示的异常。

在这里插入图片述

要解决上图所示的错误,主要有以下两种方法:

  • 在当前目录下(即与执行的文件相同的目录)创建一个名称为 status.txt 的文件。
  • 在调用open()函数时,指定mode的参数值为w、w+、a、a+。这样,当要打开的文件不存在时,就可以创建新的文件了。

2.以二进制形式打开文件

使用open()函数不仅可以文本的形式打开文本文件,而且可以以二进制形式打开非文本文件,如图片、音频文件等。例如,创建一个名称为picture.jpg的图片文件(如图所示),并且应用open()函数以二进制方式打开该文件。

以二进制方式打开该文件,并输出创建的对象对的代码如下:

file = open("picture.jpg", "rb")
print(file)

执行上面代码,将显示如图所示的结果:

从上图中可看出,创建的是一个BufferedReader对象。对于该对象生成后,可以再应用其他的第三方模块进行处理。例如,上面的BufferedReader对象是通过打开图片文件实现的。那么就可以将其传入到第三期的图像处理库PIL的Image模块的open()方法中,以便于对图像进行处理(如调整大小等)

3.打开文件时指定编码方式

在使用open()函数打开文件时,默认采用GBK编码,当被打开的文件不是GBK编码时,将抛出异常,如图所示:

解决该问题的方法有两种,一种直接修改文件的编码,另外一种是在打开文件时,直接指定使用的编码方式。推荐采用后一种方法。下面重点介绍如何在打开文件时指定编码方式。

在调用open()函数时,通过添加“encoding=‘utf-8’”参数即可实现编码指定为UTF-8。如果想指定其他编码可以将单引号中的内容替换为想要指定的编码即可。

例如,打开采用UTF-8编码保存的notice.txt文件,可以使用下面的代码:

file = open("notice.txt", "r", encoding='utf-8')

三、关闭文件

打开文件后,需要及时关闭,以免对文件造成不必要的破坏。关闭文件可以使用文件对象close()方法实现。close()方法的语法格式如下:

file.close()    # 关闭文件

说明: close()方法先刷新缓冲区中还没写入的信息,然后再关闭文件,这样可以将没有写入到文件的内容写入到文件中。在关闭文件后,便不能再进行写入操作了。

四、打开文件时使用with语句

打开文件后,要及时将其关闭,如果忘记关闭可能会带来意想不到的问题。另外如果在打开文件时抛出异常,那么将导致文件不能及时关闭。为了更好地避免此类事情的发生,可以使用Python提供with语句。从而实现在处理文件时,无论是否抛出异常,都能保障with语句执行完毕后关闭已经打开的文件。with语句的基本语法格式如下:

with expression as target:
	with-body

参数说明:

expression :用于指定一个表达式,这里可以是打开文件的函数open()。
target:用于指定一个变量,并且将expression 的结果保存到这个变量中。
with-body:用于指定with语句体,其中可以是执行with语句相关联的一些操作语句。如果不想执行语句,可以直接使用pass语句来代替。

例如打开文件的语句,修改后的代码如下:

print("\n", "=" * 10, "Python经典应用", "=" * 10)
with open("massage.txt", "w") as file:  # 创建或打开保存Python经典应用信息的文件
    pass
print("\n 即将显示……\n")

五、写入文件内容

在前面的内容中,虽然创建并打开了一个文件,但是该文件中并没有任何内容,它的大小是0kb。Python中的文件对象提供了write()方法,可以像文件中写入内容。write()方法的语法格式如下:

file.write(string)

参数说明:

  • file:打开的文件对象
  • string:要写入的字符串

注意: 在调用write()方法向文件写入内容的前提是,打开文件时,指定的打开模式为w(可写)或者a(追加),否则,将抛出如图所示的异常:

六、读取文件

在Python中打开文件后,除了可以向其写入或追加内容,还可以读取文件中的内容。读取文件内容主要分为以下几种情况。

1.读取指定字符

文件对象提供了read()方法读取指定个数的字符,其语法格式如下:

file.read([size])

参数说明:

  • file:打开的文件对象
  • size:可选参数,用于指定要读取的字符个数,如果省略则一次性读取所有内容。

注意: 在调用read()方法读取文件内容的前提是,打开文件时,指定的模式为r(只读)或者r+(读写),否则,将抛出如图所示的异常。

例如,读取massage.txt中的前9字符串,可以使用下列代码:

with open("massage.txt", "r", encoding='utf-8') as file:  # 打开文件
    string = file.read(9)  # 读取前9字符串
    print(string)

例如,massage.txt文件的内容为:

Python的强度,强度到你无法想象!!!

那么执行以上代码,将显示以下内容:

使用read([size])方法读取文件时,是从文件的开头读取部分内容,可以先使用文件对象的seek()方法将文件的指针移动到新的位置,然后在应用read([size])方法读取,seek()方法基本语法如下:

file.seek(offset[,whence])

参数说明:

  • file:表示已经打开的文件对象。
  • offset:用于指定移动的字符个数,其具体位置与whence有关。
  • whence:用于指定从什么位置开始计算。值为0表示从文件头开始计算,值为1表示从当前位置计算,值为2表示从文件尾开始计算,默认为0。

注意: 对于 whence参数,如果在打开文件时,没有使用b模式(即rb),那么只允许从文件头开始计算相对位置,从文件尾计算时就会引发如图所示的异常:

例如,想要从文件的第6个字符开始读取2个字符,可以使用下列代码:

with open("message.txt", "r") as file:  # 打开文件
    file.seek(5)              # 移动指针到新的位置
    string = file.read(2)	# 读取2个字符
    print(string)

如果message.txt文件中内容为:

123456789

那么执行上面代码,将显示以下结果:

说明: 在使用seek()方法时,offset的值是按照一个汉字占两个字符、英文和数字点占一个字符计算的,这个与read(size)方法不同。

2.读取一行

在使用read()方法读取文件时,如果文件很大,一次读取完全部内容到内存,容易造成年内存不足,所以采取逐行读取。文件对象提供了readline()方法用于每次读取一行数据。readline()方法的语法格式如下:

file.readline()

其中,file为打开的文件对象,同read()方法一样,打开文件时,指定的模式为r(只读)或者r+(读写)。

print("\n", "=" * 20, "Python经典应用", "=" * 20)
with open("message.txt", "r", encoding="utf-8") as file:  
    number = 0  # 记录行号
    while True:
        number += 1
        line = file.readline()
        if line == "":
            break
        print(number, line, end="\n")
print("\n ", "=" * 20, "over" * 20, "\n")

如果message.txt文件中内容为下图所示:

执行上面代码,将显示以下内容:

3.读取全部行

读取全部行的作用同调用read()方法时不指定size类似,只不过读取全部行时,返回的是一个字符串列表,每个元素为文件的一行内容。读取全部行,使用的是文件对象的readlines()方法,其语法格式如下:

file.readlines()

其中,file为打开的文件对象,同read()方法一样,打开文件时,指定的模式为r(只读)或者r+(读写)。

例如,通过readlines()方法读取message.txt文件中所有内容,并输出读取内容结果,代码如下:

print("\n", "=" * 20, "Python经典应用", "=" * 20)
with open("message.txt", "r", encoding="utf-8") as file:
    message = file.readlines()  # 读取全部信息
    print(message)
    print("\n ", "=" * 20, "over", "=" * 20, "\n")

执行上面代码,将显示以下内容:

从该运行结果中可以看出readlines()方法的返回值为一个字符串列表。在这个字符串列表中,每个元素为一行内容。如果文件较大时,采用这种方法输出读取的文件内容会很慢。这时可以将列表的内容逐行输出,例如,代码可以修改为以下内容:

print("\n", "=" * 20, "Python经典应用", "=" * 20)
with open("message.txt", "r", encoding="utf-8") as file:
    messageall = file.readlines()  # 读取全部信息
    for message in messageall:
        print(message)  # 输出一条信息
print("\n ", "=" * 20, "over", "=" * 20, "\n")

执行上面代码,将显示以下内容:

总结 

到此这篇关于Python基本文件操作实用指南的文章就介绍到这了,更多相关Python文件操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python基本文件操作实用指南

本文链接: https://www.lsjlt.com/news/118609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基本文件操作实用指南
    目录一、前言二、创建和打开文件1.打开一个不存在的文件时先创建该文件2.以二进制形式打开文件3.打开文件时指定编码方式三、关闭文件四、打开文件时使用with语句五、写入文件内容六、读...
    99+
    2022-11-11
  • Python文件基本操作实用指南
    文件的存储方式 在计算机中,文件是以 二进制的方式保存在磁盘上的 文本文件和二进制文件 文本文件 可以使用文本编辑软件查看...
    99+
    2022-11-12
  • opencv python简易文档之图片基本操作指南
    前言 最近在学习opencv,使用的是python接口。于是想着写些相关的笔记供以后参考,有不足之处希望大家指出。 使用python学习opencv需要下载opencv第三方库。 ...
    99+
    2022-11-12
  • Python操作XML文件的使用指南
    目录什么是 XMLPython XML 解析模块xml.etree.ElementTree 模块使用 parse() 函数使用 fromstring() 函数寻找感兴趣的元素修改 X...
    99+
    2022-11-11
  • pandas学习之txt与sql文件的基本操作指南
    目录前言1.导入txt文件2.导入sql文件2.1 安装依赖库pymysql3.小结总结前言 Pandas是python的一个数据分析包,是基于NumPy的一种工具提供了大量数据结构...
    99+
    2022-11-12
  • C++实现AVL树的基本操作指南
    目录AVL树的概念AVL树的插入AVL树的四种旋转右单旋左单旋左右双旋右左双旋查找其他接口析构函数拷贝构造拷贝赋值总结AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或...
    99+
    2022-11-12
  • MySQL5.7中的JSON基本操作指南
    前言 因为项目需要,存储字段存储成了JSON格式,在项目中是将查询出来的值通过jackson转成相应的bean进行处理的,觉得不够简单方便。 MySQL从5.7版本开始就支持JSON格式的数据,操作用起来挺...
    99+
    2022-10-18
  • python读取和保存为excel、csv、txt文件及对DataFrame文件的基本操作指南
    目录一、对excel文件的处理1.读取excel文件并将其内容转化DataFrame和矩阵形式2.将数据写入xlsx文件3.将数据保存为xlsx文件4.使用excel对数据进行处理的...
    99+
    2022-11-11
  • MySQL导出sql脚本文件操作指南
    目录前言MySQL导出sql脚本文件一.打开MySQL数据库安装目录下的bin文件夹二.在文件夹内打开命令行三.在命令框内输入指令导出sql脚本最后的话前言 sql脚本文件在我们做项...
    99+
    2023-01-13
    mysql导出sql脚本 sqlserver导出数据脚本 mysql如何导出sql文件
  • Python文件(夹)基本操作
    1、判断文件(夹)是否存在。os.path.exists(pathname)2、判断路径名是否为文件。os.path.isfile(pathname)3、判断路径名是否为目录。os.path.isdir(pathname)4、创建文件。os...
    99+
    2023-01-31
    操作 文件 Python
  • 利用Python连接Oracle数据库的基本操作指南
    这里我们采用的是使用Oracle数据库进行相关操作 在连接数据库之间,应下载相应的工具包cx_Oracle,在你安装的python文件夹中找到script,在路径栏点击输入cmd回车进入命令行输入 pip instal...
    99+
    2022-06-13
    python如何连接oracle python 连接oracle Python操作oracle数据库
  • Python中对基本文件操作
    1.文件的作用 保存数据放在磁盘中 2.打开文件 f=open(‘文件’,‘w’)或者f=open(‘文件’,‘r’) 3.文件操作 3.1 写数据(write) 如果文件不存在那么创建,如果存在那...
    99+
    2023-08-31
    python 数学建模 开发语言
  • PHP入门指南:文件操作
    作为一名初学者,PHP 文件操作可能是你需要掌握的基础操作之一。文件操作能使你进行多种操作,包括读取和写入文件,创建和删除文件,以及更重要的是,处理上传文件。在本篇文章中,我们将探讨PHP文件操作的基础知识。检查文件是否存在在进行文件操作之...
    99+
    2023-05-20
    PHP 文件操作 入门指南
  • PHP中的文件操作指南
    PHP是一种服务器端编程语言,开发人员可以使用它来开发各种类型的Web应用程序。在开发Web应用程序时,文件操作可能是一个经常需要用到的功能。在本篇文章中,我们将深入介绍PHP中的文件操作指南。一、创建文件在PHP中创建一个文件很简单,只需...
    99+
    2023-05-22
    PHP 文件操作 文件读取 文件写入
  • Python中CSV文件(逗号分割)实战操作指南
    目录一、csv文件介绍1、csv文件简介2、为什么要使用csv文件二、csv文件查看1、测试文件创建2、查看csv文件(列表)3、查看csv文件(字典)4、写入文件(列表)5、写入文...
    99+
    2022-11-11
  • MySQL中库的基本操作指南(推荐!)
    目录查看数据库创建数据库删除数据库字符集/字符校验修改数据库帮助命令数据库存储引擎查看默认存储引擎存储引擎简介存储引擎的选择总结查看数据库 语法格式: SHOW {DATABASES | SCHEMAS} [LI...
    99+
    2023-02-18
    mysql数据库基本操作 mysql 库 mysql建库
  • 关于Mysql(MariaDB)的基本操作命令指南
    MYSQL基本命令操作 1.登录方法: mysql -u root -p 2.显示所有数据库: show databases; 3.操作指定数据库(以information_schema为例) use in...
    99+
    2022-10-18
  • Golang解析yaml文件操作指南
    目录前言Simple Demogo-yaml 其他解析方法总结前言 yaml 文件是研发人员最常用的配置文件,yaml 文件的树形结构一直很受大家的欢迎。有过 SpringBoot ...
    99+
    2022-11-11
  • jenkins插件Pipeline脚本jenkinsfile操作指南
    目录前言一,安装pipeline支持插件二,创建流式Item三,编写pipeline脚本脚本如下:添加运行参数四,尝试构建任务五,pipeline的一点技巧文末结语 前言 jenki...
    99+
    2022-11-13
  • Python打包成exe文件的详细操作指南
    目录前言一、安装pyinstaller1.1 安装pyinstaller,使用安装命令:1.2 如果遇到需要更新版本请输入:1.3 检查是否正确安装1.4 稍等,水一下;二、pyth...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作