文件概念以及文本文件和二进制文件的区别
计算机的CPU如果想要访问保存在磁盘上的文件,第一步需要把磁盘上的文件数据加载到内存中。因为内存的读写速度要比磁盘的读写速度快很多。
计算机只能识别0101这种二进制的数据。
文本文件可以用文本编辑软件来查看。
不能用文本编辑软件查看,只能使用专门的其它软件来查看的文件统称为二进制文件。
无论是文本文件还是二进制文件,本质上在计算机都是以二进制方式来存储的。
文件操作套路以及Python中的对应函数和方法
读 就是把文件在磁盘中的数据加载到内存。
写 就是把内存中的内容再重新写回到磁盘的文件。
无论是否编写代码,对于文件的操作,都需要按照这三个步骤来进行:打开,读写,关闭。
当你修改了内容,内存中的数据已经发生了变化,所以在关闭时会提示我们是否把变化后的数据再重新写回到磁盘的文件。
在python中一切皆对象,open 函数打开文件并且返回文件操作对象。有了这个文件操作对象后,就可以让这个对象来调用 read, write, close 这三个方法。
读取文件内容
定义一个变量 file (作为对象名) 来接收 open函数返回的结果----文件操作对象。open函数的第一个参数就是要打开的文件名,注意文件名区分大小写。先编辑打开的代码,立马编辑关闭的代码 (对象名. close()),最后再编辑读写的代码,养成良好的编程习惯。
定义一个变量接收 read 函数返回的文件所有内容。
在Pycharm中,Shift + F10 是运行的快捷键。
读取文件后文件指针会发生变化
打开文件方式以及写入和追加数据
打开文件方式就是指open 函数的第二个参数。
r: 不传递第二个参数 或者 第二个参数为 r ,都是以只读方式打开文件。此时不能写入文件。
w: 以只写方式打开文件,文件原本的内容会被覆盖,从头开始写入。
a: 写的内容追加到文件中已有内容的末尾。a 就是指 append。
如果只是读取文件,并不需要传递第二个参数给open函数。
使用readline分行读取大文件
使用 text 变量返回 readline 的执行结果。
在并不知道这个文件有多少行的情况下,使用while循环,既然不知道循环条件,那就把循环设置成无限循环,while True: 一直读取,
readline 会读取一行内容返回给 text, 并且会把文件指针移动到下一行。如果文件指针移动到文件末尾,readline 就读取不到内容了,这就是我们退出这个循环的时机。判断一下text有没有接收到内容,没有内容就break。
小文件复制
源文件以只读方式打开,目标文件以只写方式打开。
既然是一个小文件,就可以使用read方法一次性把源文件所有内容读取出来,然后把这些内容直接写到目标文件。
关闭源文件和目标文件。
text接收到读取的内容,然后再把text作为参数传递给write函数。格式为 对象名.write(text)
控制台虽然没有任何的输出,但是工程文件夹下(左侧)会有 README[复件]。
若把 README 内容做了修改,再次运行程序,README[复件] 的内容会立刻发生变化。新的内容会立刻复制到README[复件] 中。
大文件复制
若文件太大,一次性读取会给内存造成太大的压力。应该是读取一行,写入一行。
如果读取到内容,就“写”,如果没有读取到内容,就退出循环。
导入os模块执行文件和目录管理操作
管理操作并不是针对具体某一个文件的读或者写的操作。
文件操作
目录操作