iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python教程(八)·文件操作
  • 128
分享到

python教程(八)·文件操作

操作文件教程 2023-01-31 00:01:02 128人浏览 薄情痞子

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

摘要

由于离高考越来越近,博主打算本篇文章过后,暂停本系列教程的更新,等到高考完后再继续本系列教程,请谅解! 这次我们学习用python操作文件,包括文件的读、写等…… 操作文件第一步——打开文件 要想操作文件,我们首先应该打开一个文件。当然

由于离高考越来越近,博主打算本篇文章过后,暂停本系列教程的更新,等到高考完后再继续本系列教程,请谅解!

这次我们学习python操作文件,包括文件的读、写等……

操作文件第一步——打开文件

要想操作文件,我们首先应该打开一个文件。当然,这个“打开”不是用鼠标双击那种“打开”,别忘了这是个Python编程的教程,所以我们是用python程序来打开文件。打开文件用open函数,函数的基本用法如下:

obj = open(name[, mode]) # 中括号包围表示mode参数是默认参数的,即有默认值

上面的name就是我们要打开的文件的路径,这个参数是必须的。参数mode是打开文件的模式,后面单独介绍。

该函数返回一个文件对象,通过这个对象的一些方法,我们对文件进行一些操作。

文件模式

参数mode代表打开文件的模式,文件模式的常用取值有以下几种:
值|含义
--|:--
'r' | 读模式 (默认值
w | 写模式
a | 追加模式
b | 二进制模式(和其它模式一起使用,如'rb''wb'等)
+ | 读/写模式(和其它模式一起使用,如'r+''w+'a+等)

在这里需要进一步解释说明:

  • 以读模式打开文件,可以对文件进行读取内容,这要求文件必须存在,若不存在程序将报错中止。
  • 以写模式打开文件,可以往文件写入数据,需要注意的是,如果文件不存在将创建文件,如果文件存在会将文件内容清空
  • 读/写模式意思是即可读文件又可写文件,如'r+',以读模式打开文件,除了可以读取文件内容,还可以写入数据
  • 以追加模式打开文件不会将文件清空,可以以文件末尾为起点往文件写入数据,相当于特殊的读模式

何为二进制模式?

二进制模式有些特殊,这里单独说明。

文本中的一些控制字符如换行符,在不同的系统中的存储形式是不同的,在linux系统中存储的是\n一个字符,而在windows系统中存储的是\r\n两个字符。

为了通用性,python默认用文本模式打开一个文件,从文件中读取到的换行符,python会自动将其转换成一个\n字符;写入数据的时候,python自动将\n转换成对应系统的换行符形式后再写入文件。

也就是说,以文本模式打开的文件,读取的内容不一定是原本的内容!

如果需要操作文件的原始数据,就需要用到二进制模式打开文件了。

不过这个模式我们暂时用不上,用到了再来补充吧。


好了,现在我们以写模式打开一个文件,名为test.txt,这个文件不存在,python自动为我们创建,代码如下:

fobj = open('test.txt', 'w')

第一步完成!

操作文件第二步——读和写

写文件

由于我们刚才以写模式打开了一个test.txt文件,文件无内容,我们先来说说如何往文件写入数据。

往文件写入数据用到文件对象的一个write方法:

fobj = open('test.txt', 'w')
fobj.write('hello world!\n') # 写入内容
fobj.write('I am Lee\n') # 写入内容

该方法还返回一个整数,表示写入的字符数

读文件

如果以读模式打开了一个文件(这个文件要存在),那么我们可以使用文件对象的read方法来读取文件内容:

fobj = open('test.txt', 'r') # 或者fobj = open('test.txt')
content = fobj.read(10) # 读取10个字符
print(content)
content = fobj.read() # 读取剩下的所有字符
print(content)

read方法带参数时,表示读取的字符数(如果是二进制模式就是字节数),不带参数时表示读取剩下全部内容,如果文件比较小的时候可以直接读取全部内容,如果文件比较大不建议这么做,一是因为速度慢,二是因为文件内容过大,没有足够的内存可以一次性容纳这么多数据。


注意:对文件的读和写操作时,文件对象有一个指针用于指定当前文件的操作位置,读文件的时候,会使这个指针往后移动。也就是说,我们读取文件内容时是按顺序读取的,读取完后就没有了,因为指针已经移动到文件末尾。不过我们可以使用文件对象的seek方法,手动改变这个指针的位置;写文件的操作也是类似,除非使用seek方法,否则我们无法将这次写入的数据写入到上一次写入的数据之前。

操作文件最后一步——关闭文件

操作完文件后要对其关闭,特别是更改了文件的数据的时候,可能造成写入的数据没有真正写入到文件中,这是因为写入数据的时候,是往缓冲区写入的,等缓冲区满了,或者关闭文件的时候才会将数据写入硬盘。

操作很简单,调用close方法即可:

fobj.close()

一般情况下,程序退出后或者退出前,程序打开的文件会被自动关闭,但是如果程序因为错误中止了,很可能会出现数据没有被写入文件的现象,为了安全起见,使用完文件后应及时关闭。

通常使用如下代码来保证文件正常关闭:

f = open('test.txt', 'w')
try:
    # do something
finally:
    f.close()

暂时不用理解tryfinally代码块的具体作用,我们只需要知道当try代码块发生错误是程序中止,或者程序正常运行下去,finally代码块都会执行。

也可以使用如下代码:

with open('test.txt', 'w') as f:
    # do something

with代码块结束后,无论程序是否发生错误,会自动调用close方法来关闭文件


最后总结起来,代码如下:

首先是写文件:

>>> fobj = open('test.txt', 'w')
>>> fobj.write('hello world!\n')
13
>>> fobj.write('I am Lee.\n')
10
>>> fobj.close()

然后读取这个写入的文件:

>>> fobj = open('test.txt') # 默认模式为读模式'r'
>>> fobj.read(10)  # 读取10个字符
'hello worl'
>>> fobj.read()  # 读取剩下的全部字符
'd!\nI am Lee.\n'
>>> fobj.close() # 没有对文件进行修改可不调用

其它文件操作方式

迭代文件

我们读取文件的时候还可以使用for循环进行迭代,代码如下:

>>> for line in open('test.txt'):
...     print(line, end='')  # end参数表示字符串最后附加的字符,默认为换行符
... 
hello world!
I am Lee.
>>> 

可以看到,每次循环我们得到文件的一行内容,在这里我们没有关闭文件,但是这没有必要,因为我们只是读文件,并没有改变文件的内容。

这种读取文件的方法是我们最常用的方法。

随机访问

刚才我们说过,文件的操作都是从头到尾按顺序进行的,若想“回头”,就需要使用seek方法重新设置文件指针,具体用法如下:

fobj.seek(offset[, whence])

offset参数表示偏移量,正数为向后偏移,负数为向前偏移,0表示不偏移;whence参数表示起始位置,默认是0(表示相对于文件开头,偏移量为非负数),其它取值还有1(相对于当前位置,偏移量可正可负可0,),2(相对于文件末尾,偏移量为非正数)。

同时还可以配合tell方法来使用,tell方法返回当前文件指针位置。

具体可以看下面的例子:

>>> f = open('test.txt', 'w+b') # 由于文本模式whence只能使用0,故使用二进制模式操作
>>> f.write(b'hello world') # b''为字节串类型,类似字符串,二进制模式文件操作基于字节串
11
>>> f.tell() # 获取当前文件指针位置
11
>>> f.seek(-5, 2) # 定位到文件尾部向前5个字节
6
>>> f.read(6)
b'world'
>>> f.tell() # 获取当前文件指针位置
11
>>> f.seek(-7,1) # 向前7个字节
4
>>> f.write(b'haha')
4
>>> f.seek(0) # 相当于f.seek(0,0) 定位到文件头部
0
>>> f.read() # 读取所有文件内容
b'hellhaharld'
>>> f.close() # 关闭文件

好了,本节教程就此结束,感谢读者的阅读,下一节教程要等到高考完了才有时间更新咯~

ヾ( ̄▽ ̄)Bye~Bye~

--结束END--

本文标题: python教程(八)·文件操作

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

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

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

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

下载Word文档
猜你喜欢
  • python教程(八)·文件操作
    由于离高考越来越近,博主打算本篇文章过后,暂停本系列教程的更新,等到高考完后再继续本系列教程,请谅解! 这次我们学习用python操作文件,包括文件的读、写等…… 操作文件第一步——打开文件 要想操作文件,我们首先应该打开一个文件。当然...
    99+
    2023-01-31
    操作 文件 教程
  • Python OpenCV视频文件相关操作教程
    目录一、从文件中读取视频并播放1.创建读取视频的对象2.获取视频某些属性3.修改视频属性信息4.判断图像是否读取成功5.获取视频的一帧图像6.释放图像 二、视频文件的保存1...
    99+
    2022-11-13
    opencv打开视频文件 opencv视频读取 opencv播放视频
  • 详解Java目录操作与文件操作教程
    目录目录操作创建目录判断这个文件或目录是否存在判断是否是目录读取目录删除目录文件操作创建文件删除文件File对象常用函数目录操作 创建目录 File类中有两个方法可以用来创建文件夹:...
    99+
    2024-04-02
  • C#实用教程操作xml文件
    操作XML文件是C#编程中非常常见的任务之一。下面是一个简单的C#实用教程,演示如何使用C#读取、编辑和保存XML文件。读取XML文...
    99+
    2023-09-15
    C#
  • python 文件操作
    python基本的文件操作,包括 open,read,write对文件操作流程:1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件 新建一个txt文件,内容是《Yesterday When I Was...
    99+
    2023-01-30
    操作 文件 python
  • python文件操作
    1. 文件操作 open 打开 f = open(文件路径, mode="模式", encoding="编码格式") 最最底层操作的就是bytes 打开一个文件的时候获取到的是一个文件句柄. ...
    99+
    2023-01-30
    操作 文件 python
  • 【Python】文件操作
    一、文件的编码 思考:计算机只能识别:0和1,那么我们丰富的文本文件是如何被计算机识别,并存储在硬盘中呢 答案:使用编码技术( 密码本)将内容翻译成0和1存入 编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回...
    99+
    2023-10-21
    python
  • python-文件操作
    文件操作 1.  读 / 写 操作 读取: r (read):只能读不能写,文件不存在就报错 ​#打开文件:    object = open('某txt文件',mode = 'r',encoding = '编码')​#读取文件所有内...
    99+
    2023-01-31
    操作 文件 python
  • python---文件操作
    一、对文件操作流程1.打开文件,得到文件句柄并赋值给一个变量2.通过文件句柄对文件进行操作3.关闭文件二、文件打开模式f = open("file_test","r",encoding = "utf-8")    #打开文件,“读模式”,只...
    99+
    2023-01-31
    操作 文件 python
  • Python--文件操作
    文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件  r模式,默认模式,文件不存在则报错 w模式,文件不存在则创建,文件存在则覆盖 a模式,文件不存在则创建,文件存在则不会覆盖,写内容会以...
    99+
    2023-01-30
    操作 文件 Python
  • python 操作文件
     python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 操作前需要 import os; 返回当前目录,不包括文件名: os.getcwd(); 返回指定目录下的所有文件和目录名:os.listdir("...
    99+
    2023-01-31
    操作 文件 python
  • Java Io File文件操作基础教程
    目录File 类概述File对象文件操作File静态方法获取各种路径路径整合获取classpath路径 (常用)获取Tomcat的bin目录常用功能创建目录创建文件判断文件或文件夹是...
    99+
    2024-04-02
  • Win7中隐藏文件夹操作图文教程
    大家电脑上或多或少都有着自己的隐私,别人在使用自己电脑的时候,又不希望别人看到自己的隐私,有什么办法可以隐藏这些隐私文件夹  一、把文件夹设置成 二、接着选择菜单栏中的“工具→文件夹选项...
    99+
    2023-06-07
    Win7 隐藏文件夹操作 图文 教程
  • 如何使用 Python 操作 .npy 文件?详细教程分享
    如何使用 Python 操作 .npy 文件?详细教程分享 .npy 文件是指 NumPy 存储数组数据的文件格式,它具有快速、高效和易存储等优点。在科学计算和机器学习领域中,.npy 文件的使用非常...
    99+
    2023-10-21
    python numpy 机器学习 Python
  • Python 文件操作的简易教程:从零开始掌握
    ...
    99+
    2024-04-02
  • Python文件IO操作
    文件IO常用操作:open打开read读取write写入close关闭readline行读取readlines多行读取seek文件指针操作tell指针位置打开操作:open(file, mode='r', buffering=-1, enc...
    99+
    2023-01-31
    操作 文件 Python
  • python操作Xml文件
    一、简单介绍Xml是实现不同语言或程序进行数据交换的协议,跟json差不多,但是xml远远先于json出现,例如在很多传统的金融行业的很多系统接口还主要是xml格式。Xml的格式如下:<Settings modified="2016-...
    99+
    2023-01-31
    操作 文件 python
  • python 文件操作2
    继续讲解文件操作的其他内置方法读取文件句柄的指针指针,就是说,程序读取文件到哪一行了。f = open("Yesterday.txt",'r',encoding="utf-8...
    99+
    2023-01-30
    操作 文件 python
  • Python的文件操作
    读操作 file = open('测试文件',mode='r',encoding='utf-8') print(file.read())   写操作 file = open('测试文件',mode='w',encoding='utf...
    99+
    2023-01-30
    操作 文件 Python
  • 3 Python文件操作
    open 以什么编码方式存储文件,就以什么编码方式打开 f = open('d:\模特主妇护士班主任.txt',encoding='utf-8') # 绝对路径打开 f.close() f = open('模特主妇护士班主任',enc...
    99+
    2023-01-31
    操作 文件 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作