作者简介:大学机械本科,野生程序猿,学过C语言,玩过前端,还鼓捣过嵌入式,设计也会一点点,不过如今痴迷于网络爬虫,因此现深耕Python、数据库、seienium、JS逆向、安卓逆向等等,,目前为全职爬虫工程师,学习的过程喜欢记录,目前已经写下15W字电子笔记,因此你看到了下面这篇文章~
技术栈:Python、HTML、CSS、JavaScript、C、Xpath语法、正则、、MySQL、Redis、MongoDB、Scrapy、Pyspider、Fiddler、Mitmproxy、分布式爬虫、JAVA等
个人博客:https://pythonlamb.github.io/
大学作品合集:https://sourl.cn/h9M2jX
欢迎点赞⭐️收藏关注留言呀
登高必自卑,行远必自迩.
我始终坚信越努力越幸运
⭐️ 那些打不倒我们的终将会让我们变得强大
希望在编程道路上深耕的小伙伴都会越来越好
什么是文件操作呢?
答:文件操作就是将数据存储起来,等到再次利用这些数据的时候,直接使用即可,不需要再次制作一份数据,省时省力。
文件操作步骤:
1:打开文件
2:读写文件内容操作
3:关闭文件
注意事项:文件操作步骤可以省略第二步,即文件只打开不作操作关闭
一:打开文件(open()函数)
功能:在计算机中打开一个文件
语法:文件变量名 = open(“文件名”,“访问模式”)
以后代码中,文件变量名就代表这个文件了
注意事项:
1:文件名可以是相对路径也可以是绝对路径
2:文件访问模式包括只读“r”,只写“w”,追加“a”等
二:文件的基本操作(读取数据、写入数据、没有追加数据)
功能:对文件进行读写等操作
语法:文件变量名 . write(“内容”)
文件变量名 . read(num)
等
注意事项:文件变量名是利用open函数打开或创建的文件
三:关闭文件(close())
功能:关闭打开的文件,释放计算机的内存空间
语法:文件变量名 . close()
快速代码体验:
注意事项:打开的文件有两种路径,一种是绝对路径,一种是相对路径
功能:读取目标文件中的内容
语法:文件名 = open(“目标文件名”,“r”)
注意事项:
1:如果利用open打开的目标文件不存在且访问模式为“r”只读,则程序报错
2:访问模式为只读时,执行write()命令,程序会报错,因为只读不支持数据的写入操作
快速代码体验:
一:访问模式为只读,目标文件不存在时
二:访问模式为只读,对目标文件进行写入数据操作时
功能:将数据写入到目标文件中,并且覆盖掉目标文件中的原时数据
语法:文件变量名 = open(“目标文件名”,“w”)
注意事项:
1:当利用open打开的目标文件不存在时,且文件访问模式为“w”(只写)时程序不报错,并新建这个目标文件
2:当文件访问模式为“w”(只写)时,执行write()命令,会覆盖目标文件中原始的数据
快速代码体验:
功能:将数据追加到目标文件中,注意是追加,不会覆盖掉目标文件中的原始数据
语法:文件变量名 = open(“目标文件名”,“a”)
注意事项:
1:当打开的目标文件不存在时,程序不会报错,会新建一个同名的文件
2:当访问模式为“a”(追加)时,执行write()命令,将数据写入目标文件中,且不会覆盖掉文件内的原始数据
快速代码体验
答:文件访问模式是可以省略的,省略文件访问模式,文件的默认访问模式为“r”(只读)
注意事项:
1:访问模式带b的代表以二进制模式打开一个文件(二进制模式支持文件内的任何数据类型,如文字,数字等)
2:访问模式带+的代表这个文件支持读取和写入操作,注意同时支持读取和写入
3:访问模式带b+代表以二进制模式打开这个文件,且支持读取与写入
4:访问模式带r和w的文件光标会放在文件开头处,而带a(追加)的文件光标放在文件末尾
5:访问模式r+与w+有什么区别呢?却别就是,r+打开的目标文件不存在会报错,w+则不会
6:文件在写入数据的时候要求数据类型是字符串类型
一:read(num)函数
功能:读取目标文件中的数据,并且支持存储到变量中打印出来
语法:目标文件变量名 . read(num)
其中num代表读取文件中数据的字节数,可省略,省略即读取整个目标文件数据
注意事项:假如一个文件内有20个字节的数据,第一次利用read(10)读取10个字节的数据后,文件的指针光标就会跑到10个字节的位置,再次调用read(10)就会读取文件内后10个字节的数据
快速代码体验:
二:readlines()函数
功能:将目标文件中所有的数据按照行的样式打印出来并将数据存储到列表中,每一行数据就是一个列表元素
语法:目标文件名 . readlines()
实例:利用readlines()读取c–.txt这个文件内的数据
三:readline()函数
功能:每调用一次readline()函数,读取目标文件的一行内容,调用两次则读取文件中两行内容
语法:文件变量名 . readline()
快速代码体验:
注意:上面的代码忘记关闭文件操作了,这样有可能会造成计算机内存不足
功能:支持目标文件的读取与写入操作
语法:文件变量名 . open(“目标文件”,“r+”)
注意事项:
1:当访问的目标文件不存在时,程序会报错,因为 r+遵循访问模式为 r (只读)的要求
2:执行read()文件操作时,会读取文件的数据,因为 r+ 的指针光标在文件开头处
快速代码体验
功能:支持目标文件的读取与写入操作
语法:文件变量名 . open(“目标文件”,“w+”)
注意事项:
1:当访问的目标文件不存在时,程序不会报错,会新建这个文件,因为 w+遵循访问模式为 w(只写)的要求
2:执行read()文件操作时,不会读取文件的数据,因为访问模式为w+或者w(只读)时,会清空目标文件的数据,因此读取不到数据,w+访问模式指针光标也在文件开头处
快速代码体验
功能:支持目标文件的追加与读取操作
语法:文件变量名 . open(“目标文件”,“a+”)
注意事项:
1:当访问的目标文件不存在时,程序不会报错,会新建这个文件,因为a+遵循访问模式为 a (追加)的要求
2:执行read()文件操作时,不会读取文件的数据,因为a+ 的指针光标在文件末尾处
快速代码体验:
特别注意:以上有的代码在执行完文件操作时,没有将文件进行关闭,这样是万万不可以的。
文件访问模式rb是支持以二进制的格式读取数据,wb是支持以二进制格式写入数据,计算机中的所有数据都是以二进制形式存放的,因此以二进制格式处理数据就是可以处理计算机的任何数据,如图片、音乐、影片等
seek()函数功能:修改文件内的指针光标位置,从而改变数据的读取或者写入的位置
语法:文件对象名 . seek(指针偏移量,指针起始位置)
注意事项:
1:指针偏移量不能小于0,可以为0
2:指针起始位置参数有三个,分别是0、1、2 (0代表光标在文件开头,1代表在当前位置,2代表在文件末尾)
区别:
1:当打开的目标文件不存在时,r+会程序报错,a+不会报错,会新建这个文件
2:当执行read()命令时r+的指针光标在文件开头处,a+的指针光标在文件末尾处
利用seek()函数让文件访问模式为r+时,读取不到文件数据的情况
利用seek()函数让文件访问模式为a+时,读取整个文件内的数据
一:文件数据备份的步骤:
1:接收用户需要备份的文件名
1.1:利用input()接收用户需要备份的文件夹名字
1.2:文件名字要符合要求,带后缀且不能只有后缀例如 .txt
2:规划备份文件名
2.1:利用rfind()函数查找后缀的小数点 . 从而将原始文件名进行拆分,拆成后缀名以及文件名
2.2:将拆分的两部分加入其他数据组合成新的备份文件名例如p++[备份].txt
3:将源文件的数据写入到规划好的备份文件名内
3.1:打开原始文件以及要备份的文件
3.2:读取原文件夹内数据并写入到备份的文件夹内(利用rb文件访问模式读取数据,利用wb写入数据)
3.3:关闭文件
注意事项:
1:规划文件备份名字的时候,要用到rfind()函数查询小数点 . 将文件名的名字和后缀进行分离
2:为什么要用rfind()函数查找小数点 . 呢?,因为遇到这样的文件夹名字lala.txt.mp3 .mp3才是后缀名,所以要从右侧开始查找小数点
3:读取文件数据和写入文件数据的时候要用rb以及wb这样计算机的任何数据都可以进行读取和写入操作了
代码文件:
注意事项:下面文件的操作,都要借助os模块完成,因此要先导入os模块
在Python中,对文件以及文件夹进行操作(删除、重命名等)要借助os模块
功能:对文件进行重命名
语法:os . rename(目标文件名,新文件名)
快速代码体验
对文件进行重命名
功能:删除文件
语法:os . remove(目标文件名)
注意事项:remove()函数只能删除文件,不能删除文件夹
快速代码体验
功能:获取当前文件的路径
语法:os . getcwd()
注意事项:getcwd()只是用来获取当前文件路径的,不能获取其他文件路径
快速代码体验
注意事项:下面文件夹的操作,都要借助os模块完成,因此要先导入os模块
功能:创建文件夹
语法:os . mkdir(文件名)
快速代码体验
功能:删除目标文件夹
语法:os . rmdir(目标文件名)
快速代码体验
功能:对目标文件夹进行重命名
语法:os . rename("目标文件夹名字",“新文件夹名字”)
快速代码体验
功能:修改默认路径,从而可以修改计算机中其他文件夹内的文件以及文件夹
语法:os . chdir(“目标文件夹的路径”)
注意事项:
1:文件处理默认是在相对路径中,利用chdir()可更改为其他路径
2:通过chdir()函数可以修改默认路径,从而可以修改计算机中其他文件或者文件夹
快速代码体验:
功能:获取一个文件夹内的所有文件夹以及文件,存储到一个列表中,一个文件或文件夹是一个列表元素
语法:列表变量名 = os . listdir(“目标文件名”)
,其中目标文件名可以省略,及获取当前文件夹内所有文件
快速代码体验:
方法:
import os
os.path.exists(文件或者文件夹路径)
实例一:对表情包缩略图这个文件夹内的所有文件进行重命名,要求在文件名前面加上python
表情包缩略图文件夹路径如下
快速代码体验
未完待续…