目录
(一)文件是什么
(二)文件路径
(三)文件操作
3.1 打开文件
3.2 关闭文件
3.3 写文件
3.4 读文件
(四)关于中文的处理
(五)使用上下文管理器
变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失.
要想能让数据被持久化存储, 就可以把数据存储到硬盘中. 也就是在 文件 中保存
通过文件的后缀名, 可以看到文件的类型. 常见的文件的类型如下:
咱们今天要讲的主要研究最简单的文本文件.
例如, 我电脑中的 python.exe 这个文件, 描述这个文件的位置, 就可以使用路径
D:\Software\python
【解释说明】
- 上述以 盘符 开头的路径, 我们也称为 绝对路径.
- 除了绝对路径之外, 还有一种常见的表示方式是 相对路径. 相对路径需要先指定一个基准目录, 然后以基准目录为参照点, 间接的找到目标文件.
- 描述一个文件的位置, 使用 绝对路径 和 相对路径 都是可以的. 对于新手来说, 使用 绝对路径 更简单更好理解, 也不容易出错
要使用文件, 主要是通过文件来保存数据, 并且在后续把保存的数据读取出来.
但是要想读写文件, 需要先 "打开文件", 读写完毕之后还要 "关闭文件".
我们可以使用内建函数 open 打开一个文件
f = open('d:/Software/python/test.txt','r')
【解释说明】
【效果展示】
因为我已经创建了【test.txt】文件,所以我此时进行打开操作是能够打开成功的。
但假如此时我把创建的【test.txt】文件删除掉再去打开这个文件,看效果如何:
使用 close 方法关闭已经打开的文件:即 f.close()
使用完毕的文件要记得及时关闭!
一个程序能同时打开的文件个数, 是存在上限的.接下来,我简单的用代码验证下:
flist = []
count = 0
while True:
f = open('d:/Software/python/test.txt', 'r')
flist.append(f)
count += 1
print(f'count = {count}')
效果展示:
【解释说明】
【注意】
文件打开之后, 就可以写文件了.
f = open('d:/Software/python/test.txt','w')
f.write('hello world')
f.close()
【效果展示】
f = open('d:/Software/python/test.txt','w')
f.write('world')
f.close()
f = open('d:/Software/python/test.txt','a')
f.write('hello')
f.close()
效果展示:
读文件内容需要使用 'r' 的方式打开文件
使用 read 方法完成读操作. 参数表示 "读取几个字符"
f = open('d:/Software/python/test.txt', 'r',encoding='utf8')
result = f.read(2)
print(result)
f.close()
效果展示:
先构造一个多行文件.
f = open('d:/Software/python/test.txt', 'r',encoding='utf8')
for line in f:
print(f'line = {line}')
f.close()
效果展示:
【注意】
f = open('d:/Software/python/test.txt', 'r',encoding='utf8')
lines = f.readlines()
print(lines)
f.close()
效果展示:
当文件内容存在中文的时候, 读取文件内容不一定就顺利.
同样上述代码, 有的执行上述代码不加【encoding = ‘utf8’】时可能会出现异常
计算机表示中文的时候, 会采取一定的编码方式, 我们称为 "字符集"
- 所谓 "编码方式" , 本质上就是使用数字表示汉字.
- 我们知道, 计算机只能表示二进制数据. 要想表示英文字母, 或者汉字, 或者其他文字符号, 就都要通过编码.
- 最简单的字符编码就是 ascii. 使用一个简单的整数就可以表示英文字母和阿拉伯数字.
- 但是要想表示汉字, 就需要一个更大的码表.
- 一般常用的汉字编码方式, 主要是 GBK 和 UTF-8
必须要保证文件本身的编码方式, 和 Python 代码中读取文件使用的编码方式匹配, 才能避免出现上述问题.
使用记事本打开文本文件, 在 "菜单栏" -> "文件" -> "另存为" 窗口中, 可以看到当前文件的编码方式.
此时修改打开文件的代码, 给 open 方法加上 encoding 参数, 显式的指定为和文本相同的字符集, 问题即可解决
f = open('d:/Software/python/test.txt', 'r',encoding='utf8')
打开文件之后, 是容易忘记关闭的. Python 提供了 上下文管理器 , 来帮助程序猿自动关闭文件
with open('d:/Software/python/test.txt', 'r', encoding='utf8') as f:
lines = f.readlines()
print(lines)
效果展示:
以上便是python中关于文件的基本知识介绍!!!