当前位置: 首页> 房产> 政策 > 【Python】Python 中的文件

【Python】Python 中的文件

时间:2025/7/11 2:43:02来源:https://blog.csdn.net/2301_80258336/article/details/142149355 浏览次数:0次

一、文件的概念

变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失.
要想能让数据被持久化存储, 就可以把数据存储到硬盘中. 也就是在 文件 中保存

通过文件的后缀名, 可以看到文件的类型. 常见的文件的类型如下:

  • 文本文件 (txt)
  • 可执行文件 (exe, dll)
  • 图片文件 (jpg, gif)
  • 视频文件 (mp4, mov)
  • office 文件 (.ppt, docx)

二、文件的路径

一个机器上, 会存在很多文件, 为了让这些文件更方面的被组织, 往往会使用很多的 “文件夹”(也叫做目录) 来整理文件.

实际一个文件往往是放在一系列的目录结构之中的。为了方便确定一个文件所在的位置, 使用 文件路径 来进行描述

三、文件操作

要使用文件, 主要是通过文件来保存数据, 并且在后续把保存的数据读取出来
但是要想读写文件, 需要先 “打开文件”, 读写完毕之后还要 “关闭文件”

3.1 打开文件

使用内建函数 open 打开一个文件

f = open('d:/test.txt', 'r')
  • 第一个参数是一个字符串, 表示要打开的文件路径
  • 第二个参数是一个字符串, 表示打开方式. 其中 r 表示按照读方式打开. w 表示按照写方式打开. a 表示追加写方式打开
  • 如果打开文件成功, 返回一个文件对象. 后续的读写文件操作都是围绕这个文件对象展开
  • 如果打开文件失败(比如路径指定的文件不存在), 就会抛出异常

3.2 关闭文件

使用 close 方法关闭已经打开的文件

f.close()

使用完毕的文件要记得及时关闭!!!

3.3 写文件

文件打开之后, 就可以写文件了

  • 写文件, 要使用写方式打开, open 第二个参数设为 ‘w’。使用 write 方法写入文件
    f = open('d:/test.txt', 'w')
    f.write('hello')
    f.close()
    
  • 如果是使用 ‘r’ 方式打开文件, 则写入时会抛出异常
  • 使用 ‘w’ 一旦打开文件成功, 就会清空文件原有的数据
  • 使用 ‘a’ 实现 “追加写”, 此时原有内容不变, 写入的内容会存在于之前文件内容的末尾
  • 针对已经关闭的文件对象进行写操作, 也会抛出异常

3.4 读文件

  • 读文件内容需要使用 ‘r’ 的方式打开文件
  • 使用 read 方法完成读操作. 参数表示 “读取几个字符”
  • 如果文件是多行文本, 可以使用 for 循环一次读取一行

    注意: 由于文件里每一行末尾都自带换行符, print 打印一行的时候又会默认加上一个换行符, 因此打印结果看起来之间存在空行.
    使用 print(f’line = {line}‘, end=’') 手动把 print 自带的换行符去掉

  • 使用 readlines 直接把文件整个内容读取出来, 返回一个列表. 每个元素即为一行
    f = open('d:/test.txt', 'r')
    lines = f.readlines()
    print(lines)
    f.close()
    

四、关于中文的处理

当文件内容存在中文的时候, 读取文件内容不一定就顺利

给 open 方法加上 encoding 参数, 显式的指定为和文本相同的字符集

f = open('d:/test.txt', 'r', encoding='utf8')

五、使用上下文管理器

打开文件之后, 是容易忘记关闭的. Python 提供了 上下文管理器 , 来帮助自动关闭文件.
使用 with 语句打开文件. 当 with 内部的代码块执行完毕后, 就会自动调用关闭方法

with open('d:/test.txt', 'r', encoding='utf8') as f:lines = f.readlines()print(lines)
关键字:【Python】Python 中的文件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: