第12章 I_O 目录

OS库下,目录相关方法

分类 方法 参数 作用
获取 getcwd() 获取当前目录
listdir() path 返回目录下的所有文件和子目录
创建 mkdir() path 创建目录(文件夹),已存在时报错
makedirs() path 递归创建目录(文件夹), 层层创建
删除 rmdir() path 删除目录
removedirs() path 递归删除目录,层层删除
改变 chdir() path 改变当前目录
fchdir() fd 改变当前目录,fd为文件描述符
chroot() path 改变根目录
重命名 rename() src, dst 重命名文件或目录
renames() old, new 递归重命名文件或目录
import os
os.getcwd()  #'C:\\Users\\Administrator\\Desktop'

path = 'C:\\Users\\Administrator\\Desktop'
os.listdir(path)  #['1.txt', '2.txt', ...]

os.rename('3.txt', '4.txt')  #把文件名从【3】改成【4】

os.path 操作目录

分类 方法 参数 作用
时间 getctime() 单个路径 创建时间
getmtime() 单个路径 最后一次修改时间
getatime() 单个路径 最后一次访问时间
路径 exists() 单个路径 路径是否存在
abspath() 单个路径 获取绝对路径
dirname() 单个路径 获取目录
其它 getsize() 单个路径 获取文件大小
commonprefix() 路径列表 获取相同前缀
commonpath() 路径列表 获取相同路径
import os
a = "C:/Users/Administrator/Desktop/1.txt"
print(os.path.exists(a))     #True
print(os.path.abspath(a))    #C:\Users\Administrator\Desktop\1.txt
print(os.path.dirname(a))    #C:/Users/Administrator/Desk
print(os.path.getsize(a))    #4

import time
print(os.path.getctime(a))      #1594851752.9577408
print(os.path.getmtime(a))      #1596328973.92547
print(os.path.getatime(a))      #1594851752.9577408

b = "C:/Users/Administrator/Desktop/2.txt"
print(os.path.commonprefix([a,b]))  #C:\Users\Administrator\Desktop
print(os.path.commonpath([a,b]))    #C:/Users/Administrator/Desktop/

# pathlib 路径

父类PurePath操作路径的字符串,子类Path操作路径。python会根据操作系统调用合适的类

PurePath

创建PurePath对象

参数 单个字符串 多个字符串 多个路径
返回值 当前路径,同【.】 字符串 用【\】拼接 最后一个路径

注意:

  1. windows中,路径不区分大小写
  2. 系统信息中的路径用【\】连接,python中各级路径要用【/】连接,前者为转义字符
  3. 多余的斜杠和点会被忽略,例外:【…】代表上一级路径
    a = PurePath(“foo/…/bar”)表示:寻找与【foo】同级的【bar】的路径
from pathlib import *
a = PurePath()                  #.
a = PurePath('aaa')             #aaa
a = PurePath('aa','bb')         #aa\bb
a = PurePath("C:", "C:/Users")  #C:\Users

PurePath对象的属性

属性 含义 参数:"C:/Users/Administrator/Desktop/test.py"
parts 各部分 (‘C:\’, ‘Users’, ‘Administrator’, ‘Desktop’, ‘test.py’)
drive 盘符 C:
root 根路径 \
anchor 盘符 + 根路径 C:\
stem 当前路径的主文件名 test
name 当前路径的完整文件名 test.py
suffixes 当前路径的所有后缀名 [’.py’]
suffix suffixes的最后一个元素 .py
parents 全部父路径 <PureWindowsPath.parents>
parent 上级路径 C:\Users\Administrator\Desktop

PurePath对象的方法

方法 作用 返回值
is_absolute() 判断是否为绝对路径 bool值
match(pattern) 判断是否匹配指定通配符 bool值
joinpath(*other) 连接多个路径,与【/】等效 在后面增加路径
relative_to(*other) 当前路径去除基路径 去除前面一部分路径
with_name(name) 重命名
with_suffix(name) 更改/添加后缀名
a = PurePath("C:/Users/Administrator/Desktop/test.py")
a.is_absolute()    #True
a.match('*test*')  #True
a.joinpath('11', '22')
#'C:/Users/Administrator/Desktop/test.py/11/22'
a.relative_to('C:/')
#'Users/Administrator/Desktop/test.py'
a.with_name('new_name')
#'C:/Users/Administrator/Desktop/new_name'
a.with_suffix('.new_suffix')
#'C:/Users/Administrator/Desktop/test.new_suffix'

Path

Path对象的方法

方法 作用
exists() 判断路径是否存在
iterdir() 返回目录下所有子目录和文件
glob(pattern) 返回目录、子目录下,匹配指定模式的所有文件
a = Path("C:/Users/Administrator/Desktop/test.py")
a.exists()  #True

b = Path("C:/Users/Administrator/Desktop"
for i in b.iterdir(): print(i)
#返回桌面所有文件的完整路径,如:C:\Users\Administrator\Desktop\~$时间.docx

for i in b.glob('*.docx'): print(i)
#返回符合pattern的路径,如:C:\Users\Administrator\Desktop\~$6.docx

# tempfile 临时目录

临时目录只存在于内存,程序退出时会被删除

方法 作用
TemporaryDirectory
(suffix=None ,prefix=None, dir=None)
生成临时目录
gettempdir()、gettempdirb() 获取系统的临时目录,字符串或字节串
gettempprefix()、gettempprefixb() 返回用于生成临时文件的前缀,字符串或字节串
上一篇:Windows隐藏账户处置


下一篇:P12:Redux进阶-将组件UI和业务逻辑进行拆分