🌕1、文件是什么?
平时,生活中我们见到的电影(MP4)、歌曲(MP3)、图片(JPG)、文本(txt)、表格(xlsx)…都可以被称为 文件。
这些文件的格式和文件里面的内容可能不同,但是他们有一个共同特点:
数据都是保存在硬盘上的!!!
冯诺依曼体系:
CPU(运算器和控制器)、存储器、输入设备、输出设备
存储器 可以分为 内存和外存,
外存典型的就是硬盘
变量存储在内存中,文件存储在硬盘中
内存和硬盘的区别:
- 内存的空间更小,硬盘空间大
- 内存访问更快,硬盘访问更慢
- 内存成本更贵,硬盘成本更便宜
- 内存的数据易失,硬盘的数据持久化存储
硬盘上存储的数据是以文件的形式来组织的~
注:文件夹(目录)也是一种特殊的文件 -> 目录文件
🌕2、文件路径
D:\Program Files\Tencent\QQ\Bin\QQ.exe
上述是小戴电脑中 qq.exe 这个文件的位置,
我们把这一层层的目录构成的字符串,称为 “文件的路径”
知道了文件路径,就可以知道这个文件在硬盘上的详细位置,也就可以进一步知道这个文件里都有啥~ 方便使用这个文件~
文件路径也可以视为是 文件 在硬盘上的标识
每个文件对应的路径是唯一的
目录名之间,使用 \
来分割,使用 /
其实也行
🥝2.1 绝对路径和相对路径
绝对路径:
指的是绝对位置,完整地描述文件位置的路径,通常是从盘符开始的路径
比如:D:\Program Files\Tencent\QQ\Bin\QQ.exe
相对路径:
是从当前文件所在的文件夹开始的路径
- QQ.exe:是在当前文件夹查找 QQ.exe 文件
-
./QQ.exe
:也是在当前文件夹里查找QQ.exe文件,./
表示的是当前文件夹,可以省略 -
../QQ.exet
:从当前文件夹的上一级文件夹里查找 QQ.exe 文件。../
表示的是上一级文件夹 - Bin\QQ.exe,在当前文件夹里查找Bin这个文件夹,并在这个文件夹里查找 QQ.exe文件
路径书写的三种方式
-
\\
(正斜杠容易与转义字符混淆)
file = open(‘D:\Program Files\Tencent\QQ\Bin\QQ.exe’) -
r'\'
(推荐)
file = open(r’D:\Program Files\Tencent\QQ\Bin\QQ.exe’) -
'/'
(推荐)
file = open(‘D:/Program Files/Tencent/QQ/Bin/QQ.exe’)
🌕3、文件操作
🥝3.1 打开文件
先在自己的电脑 E盘上建立一个叫做 “文本” 的目录,然后再目录底下新建一个 “test.txt” 文件
打开方式:
- r 表示 read,按照读方式打开
- w 表示 write,按照写方式打开
- a 表示 append,也是写方式打开,把内容写到原有文件内容的末尾,即 “追加” 的意思
如果准备按照读方式打开的文件不存在的时候,就抛出了文件没找到的异常
open 函数
的返回值是一个 文件对象
文件的内容是在硬盘上的,此处的文件对象,则是内存上的一个变量~ 后续读写文件操作,都是拿着这个文件对象来进行操作的~
🥝3.2 读文件
读文件内容使用 r
的方式打开文件,使用 read
方法完成读操作,参数表示 “读取几个字符”
f = open('E:/文本/test.txt', 'r')
result = f.read(2)
print(result)
f.close()
read() 全部读取出来
readline() 读取一行
f = open('E:/文本/test.txt', 'r', encoding='utf8')
print(f.readline().strip()) # 小戴真棒
print(f.readline()) # 小戴会更加棒\n
f.close()
readlines() 返回一个列表,列表中的每个元素是原文件的每一行
f = open('E:/文本/test.txt', 'r', encoding='utf8')
list = f.readlines()
print(list) # ['小戴真棒\n', '小戴会更棒']
f.close()
for 循环读取。 文件句柄是一个迭代器。特点是每次循环只在内存中占一行的数据,非常节省内存
f = open('E:/文本/test.txt', 'r', encoding='utf8')
for line in f:
print(line.strip())
f.close()
注意:
实际开发的时候需要保证,文件内容的编码方式和代码中操作文件的编码方式要匹配
此处,我们使用的方法,是让代码按照 utf 8 来进行处理,相比于 gbk,utf8 是使用更广泛的编码方式
🥝3.3 写文件
文件打开之后,就可以写文件了
- 写文件,要使用写方式打开,
open
第二个参数设为'w'
- 使用
write
方法写入文件
f = open('E:/文本/test.txt', 'w')
f.write('hello')
f.close()
用记事本打开文件之后,即可看到文件修改后的内容
如果使用 'r'
方式打开文件,则写入时会抛出异常
使用 'w'
打开文件,就会清空文件原有的数据, 那咱们想要在原本数据基础上添加数据,该怎么办呢?
使用 a
可以实现 “追加写”,此时原有的内容不变,写入的内容会存在于之前文件内容的末尾
如果文件对象已经被关闭,意味着系统中和该文件相关的内容资源已经释放了,强行去写,就会出异常
🥝3.4 关闭文件
使用 close
方法关闭已经打开的文件
f.close()
一个程序能同时打开的文件个数,是存在上限的
使用完毕的文件要记得及时关闭
打开文件,其实是在申请一定的系统资源,不再使用文件的时候,资源就应该及时释放,否则就可能造成文件资源泄露,进一步的导致其他部分的代码无法顺利打开文件了~
文件资源泄露,其实是一个很重要的问题,不会在第一时间暴露出来,而是在不知情时给进行释放~文章来源:https://www.toymoban.com/news/detail-401415.html
Python 有个重要的机制—— 垃圾回收机制(GC),自动的把不使用的变量,给进行释放,可以让我们一定程度上避免上述问题,但是也不能完全依赖自动释放机制,因为自动释放不一定及时~文章来源地址https://www.toymoban.com/news/detail-401415.html
到了这里,关于10min 学会Python 文件操作,我只看了这一篇文章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!