【10月更文挑战第18天】
文件流:临时文件,py文件执行完,临时文件占用内存,自动回收
如果我们要使用临时文件的话,那么我们是需要进行数据的导入的
io流
文件流分为:字符串类型、字符串类型
字符串类型的流
import io
s=io.StringIO()#生成一个字符串类型的临时文件
s.write('hello')
s.seek(0,0)#将光标放到开头
print(s.read())
字节类型的流
import io
b=io.BytesIO()#生成一个字节类型的临时文件
#我们需要进行编码操作
b.write('你好'.encode())#只能写入字节数据,需要进行编码
print(b.getvalue())
#b'\xe4\xbd\xa0\xe5\xa5\xbd'
#字节的访问就是getvalue()
#如果像变成我们能看懂的东西,那么就进行解码操作
print(b.getvalue().decode())
#你好
操控电脑上的文件,需要导入os模块
文件夹的创建
使用os.mkdir
import os
os.mkdir('凯子坚持C')
如果我们想要固定创建的位置的话,我们就需要使用相对路径
import os
os.mkdir(r'D:\作业\凯子坚持C')
如果是同一个文件夹的话,那么我们使用相对路径就行了
文件夹的重命名操作
现在我们的桌面是有一个文件的---凯子坚持C.txt
我们如何对这个文件进行重命名的操作呢?
使用os.rename
import os
os.rename("凯子坚持C",'小凯')
文件夹的查询操作
获取当前文件的位置
os.getcwd()---返回值就是当前文件的位置
import os
print(os.getcwd())#获取当前文件的位置
#C:\Users\27890\Desktop
获取当前文件夹内所有的文件
os.listdir()
import os
print(os.listdir())#获取当前文件夹内所有的内容
这些操作我们也是可以进行路径的指定的,获取指定文件夹中所有的内容
删除文件夹
删除空文件夹os.rmdir("文件名")
import os
os.rmdir("小凯")#删除空文件夹
将文件夹进行删除
os.remove
import os
os.remove("文件名")
对图片进行操作
如果想打开图片的话,那么我们需要用字节的方式进行打开
那么我们的读取模式从r变成rb
b是以字节的方式进行读取
这里我进行读取是十分卡顿的,因为这个图片的字节是很多的
with open(r"C:\Users\27890\Desktop\微信图片_20240906224155.png",mode='rb') as f:
print(f.read())
b:以字节方式打开内容
应用于打开图片、音频、视频等非文字文件
对图片进行复制的操作
我们需要先拿到需要复制的文件信息
然后再进行复制
我们先定义一个变量,将要复制图片的信息进行存储
with open(r"C:\Users\27890\Desktop\微信图片_20240906224155.png",mode='rb') as f:
data=f.read()
#我们这里不能在用rb了,因为我们要复制这个图片了,所以我们用wb
with open(r"C:\Users\27890\Desktop\微信图片_20240906224155附件.png",mode='wb') as f:
f.write(data)
从名字我们就能看出这个图片我们进行复制成功了
我们需要先打开这个我们要复制的图片,将获取的信息用变量进行保存
然后利用这个变量进行文件的创建
最后就得到了这个复制的图片
正则表达式是一种通用的用来简洁表达一组字符串的表达式,利用正则表达式可以方便快捷的匹配和筛选字符串
举个例子:在一堆数据中进行电话号码的寻找,我们需要根据电话号码的特征在这一堆数据进行电话的寻找,电话是11位数的,全是数字,基于特征进行寻找
正则的一些方法都是放在re模块的
re 模块使 Python 语言拥有全部的正则表达式功能。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
所以我们如果想使用正则表达式的话,我们是先进行将正则表达式导入re的操作
正则在爬虫里面很常见的,在大量的字符串里面进行数据的寻找
对于正则表达式来说,我们需要描述我们的需求,我们怎么写
对什么样的数字进行一系列的操作
比如说我们需要进行电话号码的匹配
11位,并且是数字
'\d{11}'
'1[3-9]\d{9}'----第一个数字只能是1,第二个数字是3-9之间的,后面的就是\d了,然后总长度限制为9