Python 内置模块 文件与目录 通用

一.io模块:提供了多个流式处理接口

参见:https://www.jianshu.com/p/ddaac0b9b430 \quad https://blog.csdn.net/taiyangdao/article/details/79156389

1.概述:

Python的io模块提供了多个流式处理接口,用于进行文件流的处理

2.StringIO:

使用"内存缓冲区"(in-memory buffer)进行文本IO:io.StringIO()
  #可在字符串修改频繁时使用

#实例1:
>>> import io
>>> str0="aaasdas"
>>> str1=io.StringIO(str0)
#str1可通过io模块中其他方法(即file数据的方法)进行操作,包括修改
>>> str1
<_io.StringIO object at 0x0000018CDCEC61F0>
#实例2:
>>> import io
>>> s = "abcdefghljklmn"
>>> sio = io.StringIO(s)
>>> print(sio.getvalue())#使用IO后,获取新的字符串值
abcdefghljklmn
>>> sio.seek(5)#指针移动到字符串的下标索引5的位置
5
>>> sio.write("胡")#在指针移动后的位置写入新的字符"胡"
1
>>> print(sio.getvalue())#再获取新的字符串值
abcde胡ghljklmn

二.Glob模块

用于查找符合特定规则的文件路径

#注意:
1.只使用3个匹配符:"*",匹配任意个任意字符
  ②"?",匹配单个任意字符
  ③"[]",匹配指定范围内的字符,:[0-9]匹配数字/[a-z]匹配字母
  ④"[!]",匹配不在指定范围内的字符
2.字母不区分大小写
3.不会进行迭代,即匹配上的路径下的路径不会被显示

##############################################################################

glob.glob("<path_format>"):返回所有匹配的文件路径构成的str list
  #参数说明:
    path_format:指定路径匹配规则;str
      #可以是绝对路径,也可以是相对路径

#实例:
>>> glob.glob("G:\programm\[a-z]*")
['G:\\programm\\C_C++_C#', 'G:\\programm\\Dev-C++项目', 'G:\\programm\\Django项目', 'G:\\programm\\Git', 'G:\\programm\\JavaScript', 'G:\\programm\\PyCharmProject', 'G:\\programm\\Python', 'G:\\programm\\VisualStudioSource']
>>> glob.glob("G:\programm")
['G:\\programm']
>>> glob.glob("G:\??")
['G:\\活动']
>>> glob.glob("G:\p*\[!a-z]")
['G:\\programm\\1']

##############################################################################

glob.iglob("<path_format>"):功能同.glob(),但返回的是生成器
  #参数说明:同.glob()

#实例:
>>> a=glob.iglob("G:\p*")
>>> print(a)
<generator object _iglob at 0x0000024CFE7D8048>
>>> for i in a:
...     print(i)
...
G:\PPT
G:\Program Files
G:\programm

三.shutil模块
1.功能

shutil模块用于文件/文件夹的拷贝/移动/删除/压缩/解压缩

2.方法:

shutil.copyfile('filename','tofile')
#拷贝文件
#参数说明:
#filename:要拷贝的文件
#tofile:拷贝给的文件(没有直接创建)

shutil.copytree('dirname','todir',ignore=None)
#拷贝文件夹
#参数说明:
#dirname:要拷贝到文件(夹)所在的位置(dirname本身不拷贝,拷贝其中的内容)
#todir:要拷贝到的位置(必须不存在)
#ignore:忽略的文件
#  None表示范围内的文件均拷贝
#  shutil.ignore_patterns('x')表示x不拷贝
shutil.copytree('G:\programm','G:\A',ignore=shutil.ignore_patterns('*.txt','*.html'))
#拷贝G:\programm中的所有非txt/html文件到G:\A

shutil.make_archive('topath','archive_pattern','path')
#压缩文件到指定位置
#参数说明:
#topath:指定得到的压缩文件的位置;默认为当前目录
#pattern:指定压缩模式
#path:指定要压缩的内容
shutil.make_archive('G:','zip','G:\programm')
#将G:\programm压缩成zip格式放于G:

四.pathlib模块
1.功能:

pathlib模块提供了用于处理文件和目录的面向对象式的API.其功能和os.path相同,但更简洁
易用,故推荐使用该模块替代os.path

2.路径
(1)分类:

路径类分为提供纯计算操作而没有IO的"纯路径",以及继承纯路径但提供IO操作的"具体路径"

在这里插入图片描述
(2)文件路径对象:

文件路径:pathlib.Path([*args,**kwargs])

#实例:
>>> pathlib.Path.cwd()
WindowsPath('C:/Users/Euler')#当前路径
>>> pathlib.Path.home()
WindowsPath('C:/Users/Euler')#家目录
>>> path=pathlib.Path("E:\\Program")#创建1个路径
>>> path
WindowsPath('E:/Program')
>>> path.cwd()
WindowsPath('E:/')#当前路径
>>> path.home()
WindowsPath('C:/Users/Euler')#家目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值