python打开文件_人生苦短,我学不会Python。——Python文件操作

1.文件的打开与关闭

在Python中操作文件的整体过程很简单:

1).打开文件。

2).读/写数据。

3).关闭文件。

1.1文件的打开

在Python中,open方法用来打开文件,语法格式如下:

open

上述格式中,“文件名”必须要填写,“访问模式”是可选的。

例如打开一个名称为“test.txt”的文件,示例代码如下:

f 

需要注意的是,使用open方法打开文件时,如果没有注明访问模式,则必须保证文件是存在的,否则会报如下异常信息。

c111a8da55b366897c702fca62ac055a.png

1.2文件模式

如果使用open方法打开文件时,只带一个文件名,那么我们只能读取文件。如果打开的文件允许写数据,则必须指明文件的模式。Python中文件的访问模式有很多种。

12c67b5dbcace4cbd3d1ba0a2f257c57.png

在罗列的模式中,“rb”“wb”“ab”模式都是以二进制的方式操作文件,通常这几种模式用于处理二进制类型的文件,如声音或者图像等。

1.3文件的关闭

凡是打开的文件,切记要使用close方法关闭。即使文件会在程序退出后自动关闭,但是考虑到数据的安全性,在每次使用完文件后,都要使用close方法关闭文件,否则一旦程序崩溃,很可能导致文件中的数据没有保存。close方法的使用非常简单,具体示例如下:

#新建一个文件,文件名为:test.txt

2.文件的读写

文件最重要的能力是接收数据或者提供数据。文件的读写,无非是将数据写入文件或者从文件中读取数据,接下来,本节将分别针对文件的读写进行讲解。

2.1写文件

向文件写数据,需要使用write方法来完成,在操作耨个文件时,每调用一次write方法,写入的数据就会追加到文件末尾,接下来,通过一个案例来演示。

[

程序运行后,会在程序所在的路径下生成一个名为Python.txt的文件。打开该文件,可以看到数据成功被写入。

c255c054737f0992a567b0543ba05995.png
注意:当向文件写入数据是,如果文件不存在,那么系统会自动创建一个文件并写入数据。如果文件存在,那么会清空原来文件的数据,重新写入新数据。

2.2读文件

从文件中读取数据时,可以通过多种方式来获取,具体如下。

1.使用read方法读取文件

read方法可以从文件中读取数据,该方法的定义语法如下:

raad

上述方法中,size表示要从问及那种读取的数据的长度,单位为字节。如果没有指定size,那么就表示读取文件的全部数据。

使用read方法读取文件

f 

运行结果:

2afabd4f3d91c639c5da4038615b65eb.png

2.使用readlines方法读取文件

若文件的内容很少,则可以使用readlines方法把整个文件中的内容进行一次性读取。readlines方法会返回一个列表,列表中的每一个元素为文件中的每一行数据。假设文件“Python.txt”里有3行数据“Hello Python, i am here!”,那么,使用readlines方法读取文件的方式如下面所示。

f 

运行结果:

96f855e063b7c872be1aeba4d50aa5b7.png

3.使用readline方法一行一行读数据

同样,以读取Python.txt文件为例,该文件包含了3行数据,那么使用readline方法读取文件的方式如下面所示。

f 

运行结果:

fcedf5f4c5338821916851b0c23bd60f.png

2.3文件读写的应用——制作文件的备份

实际开发中,文件的读写可以完成很多功能,如文件的备份就是文件读写的过程。假设,现在又一个文件“data.txt”,该文件储存的数据如图:

6f607974da139529360253e7674db528.png

此时,如果想制作data.txt的备份文件,则需要读取源文件的数据,并将获得的数据写入备份文件。与原文件相比,备份文件储存的数据于源文件是一样的。接下来,通过代码来演示。

oldFileName 

运行程序,发现备份制作成功。

6fea12c8db9d434559c3a94fcab4aa5b.png

2.4文件的定位读写

在前面的学习中,文件的读写都是顺序进行的。但是在实际开发中,可能会需要从某个特定位置开始读写,这是,我们需要对文件的读写进行定位,包括获取文件当前读写位置。接下来对两种定位方式进行详细介绍,具体如下:

1.使用tell方法来获取文件当前的读写位置

在读写文件的过程中,如果想知道当前的位置,可以使用tell方法来获取。tell方法返回文件当前的位置,即文件指针当前的位置。

假设文件“Python.txt”的内容如下:

Hello Python, i am here!
Hello Python, i am here!
Hello Python, i am here!

此时,使用read方法读取文件数据的时候,获取当前数据的位置。

使用tell方法获取文件当前的读写位置。

#打开一个已经存在的文件

运行结果:

f6e7918858ed738bd2f4a70c6fb0baca.png

2.使用seek方法定位到文件的指定读写位置

如果在读写文件的过程中,需要从指定的位置开始读写操作,就可以使用seek方法实现。

seek方法的定义语法如下:

seek

seek方法的参数介绍如下:

(1)offset:表示偏移量,也就是需要移动的字节数。

(2)whence:表示方向,该参数得值有三个:

①SEEK_SET或0:whence参数的默认值,表示文件的起始位置开始偏移。

②SEEK_CUR或1:表示从文件当前的位置开始偏移。

③SEEK_END或2:从文件末端开始偏移。

同样以上面的文件“Python.txt”为例,假设要从文件开头偏移四个字节。

使用seek方法定位到文件的指定位置。

f 

运行结果:

2c820c2d8e02373ec3ea48742435bad3.png

如果将文件的读写位置定位在当前位置偏移四个字符的位置。

#打开一个已存在的文件

运行结果:

2105b67c411dfcaa00dfed5778b1ba12.png

将文件的读写位置定位在文件末尾三字节处。

#打开一个已经存在的文件

运行结果:

ffcb2d9fb472b3fe874ba1ebf416c087.png

3.文件的重命名和删除

有时候需要对文件进行重命名、删除等操作,Python的os模块默认已经包含了这些功能。

3.1文件的重命名

os模块的rename方法可以完成对文件的重命名操作,格式如下:

os

上述格式中,src指的是需要修改的文件名,dst指的是修改后的新文件名。

import 

3.2文件的删除

os模块的remove方法可以完成对文件的删除操作,格式如下:

os

上述格式中,path指的是指定路径下的文件。

import 

4.文件夹的相关操作

实际开发中,有时需要用程序的方式对文件夹进行一定的操作,如创建、删除等。就像对文件操作需要os模块一样,如果要操作文件夹,同样需要os模块。

4.1创建文件夹

os模块的mkdir方法用来创建文件夹。

import 

4.2获取当前目录

os模块的getcwd方法用来获取当前的目录。

import 

4.3改变默认目录

os模块的chdir方法来改变默认目录,例如,将当前目录改编为上一级目录的代码如下:

import 

4.4获取目录列表

os模块的listdir方法用来获取目录列表,例如,要获取当前路径下的子目录列表,代码如下:

import 

4.5删除文件夹

os模块的rmdir方法用来删除文件夹。

import 

5.文件操作的应用—批量修改文件名

在日常生活中,经常会根据某些需求对文件的名字进行修改,可是,如果需要修改的文件太多,一个一个修改文件名的效率显然是很低的。这时我们可以借助刚学习的文件操作,编写一个批量修改文件名的小程序,这样省时省力,可以极大地提高工作效率。

假设现在有一批文件的名称需要修改,修改前和修改后的文件名如下图所示:

e18c41ffa5acddabd9a7712dbd0507ab.png
修改前的文件名

b29a6ad88b1648132bcd7a3ee672a4cb.png
修改后的文件名
#批量在文件名前加前缀

6.文件案例——学生管理系统(文件版)

前面在开发学生管理系统的时候,数据都是储存在变量中的。一旦程序结束或者崩溃,那么之前储存的数据都会消失。为了预防这种情况发生,我们可以借助文件来来储存数据。接下来,我们在之前的基础上,新增一个保存学生信息的功能,具体步骤如下。

(1)在表示菜单列表的函数中,新增一个保存数据的功能项,代码如下:

#打印功能提示

(2)作为程序员,应该考虑写入数据后可以读取出来。我们知道,所有学生的信息保存在变量stuInfo中,它里面是多个字典。但是,write函数传入的参数必须是字符串类型,所以需要把字典强制转换成字符串。定义保存数据的函数,代码如下:

#保存当前所有的学生信息到文件中

(3)从文件读取到的内容是字符串,我们可以把这些带有特定格式的字符串转换成其原有的类型,所以调用eval函数把字符串转换成字典。定义从文件中恢复数据的函数,代码如下:

#恢复数据

(4)在main函数中执行,代码如下:

def 

运行程序,添加一个学生信息并保存,如图所示。

4052bc8e5e447006e5626caf0a5a5bd4.png

打开backup.data文件,发现新增的数据成功保存到了文件中,如图所示。

a854fa77598371e9e3de557307352e18.png

Python其实没有那么难。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值