【Python】07.Python 中的文件

一、文件的概念

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

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

  • 文本文件 (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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值