您现在的位置是:网站首页> 编程资料编程资料

Python四大模块文件管理介绍_python_

2023-05-25 521人已围观

简介 Python四大模块文件管理介绍_python_

一、os模块

1、方法大纲

2、常用方法

方法描述
getcwd()获取当前工作目录
chdir(path)将当前的工作目录更改为指定的路径
listdir(path=None)列出指定目录中的文件名。如果 path 为 None,则使用 path=‘.’。
mkdir(path, mode=511, *, dir_fd=None)创建目录
makedirs(name, mode=511, exist_ok=False)递归创建多层目录
rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)重命名文件或目录
remove(path, *, dir_fd=None)删除文件
rmdir(path, *, dir_fd=None)删除目录
removedirs(name)递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空抛出异常。
walk(top, topdown=True, onerror=None, followlinks=False)遍历 top 路径下的所有子目录,返回一个包含 3 个元素的元组:(dirpath, dirnames, filenames)。
os.curdir指代当前目录(‘.’)
os.pardir指代上一级目录(‘…’)
os.sep路径分割符(Windows 为 ‘\’,Linux 为 ‘/’)
os.linesep行终止符(Windows 为 ‘\r\n’,Linux 为 ‘\n’)
os.name指代当前使用的操作系统(Windows 系统为 ‘nt’,Linux 为 ‘posix’)

二、glob模块

1、方法大纲

glob模块也是Python标准库中一个重要的模块,主要用来查找符合特定规则的目录和文件,并将搜索的到的结果返回到一个列表中。使用这个模块最主要的原因就是,该模块支持几个特殊的正则通配符,用起来贼方便,这个将会在下方为大家进行详细讲解。

2、使用示例

import glob path1 = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\[0-9].png" print(glob.glob(path1)) path2 = r"C:\Users\黄伟\Desktop\publish\os模块\test_shutil_a\[0-9a-z].*" print(glob.glob(path2))

注意:这个函数里面还有一个参数,recursive,当其为真时,则模式’**'将与任何文件匹配,并且

零或更多目录和子目录。

三、shutil模块

1、方法大纲

os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作。而Python另外一个标准库——shutil模块,它作为os模块的补充,提供了复制、移动、删除、压缩、解压等操作,这些 os 模块中一般是没有提供的。但是需要注意的是:shutil模块对压缩包的处理是调用ZipFileTarFile这两个模块来进行的。

2、压缩包

对压缩包管理是使用zipfile模块

import zipfile import os file_list = os.listdir(os.getcwd()) # 获取当前目录 # 将上述所有文件,进行打包,使用“w” with zipfile.ZipFile(r"我创建的压缩包.zip", "w") as zipobj: # 对文件进行压缩 for file in file_list: zipobj.write(file) # 将文件写入压缩包中 

四、pathlib模块

1、对比图

操作os and os.pathpathlib
绝对路径os.path.abspathPath.resolve
修改权限os.chmodPath.chmod
创建目录os.mkdirPath.mkdir
重命名os.renamePath.rename
移动os.replacePath.replace
删除目录os.rmdirPath.rmdir
删除文件os.remove, os.unlinkPath.unlink
工作目录os.getcwdPath.cwd
是否存在os.path.existsPath.exists
用户目录os.path.expanduserPath.expanduser and Path.home
是否为目录os.path.isdirPath.is_dir
是否为文件os.path.isfilePath.is_file
是否为连接os.path.islinkPath.is_symlink
文件属性os.statPath.stat, Path.owner, Path.group
是否为绝对路径os.path.isabsPurePath.is_absolute
路径拼接os.path.joinPurePath.joinpath
文件名os.path.basenamePurePath.name
上级目录os.path.dirnamePurePath.parent
同名文件os.path.samefilePath.samefile
后缀os.path.splitextPurePath.suffix

2、路径获取

获取当前工作目录

import pathlib print(pathlib.Path.cwd()) # 虽然在这里打印出来的很像一个字符串,但实际上得到的是一个WindowsPath对象 # 其实现了 __repr__ 和 __str__ 底层方法 print(pathlib.Path(__file__)) # 获取当前文件路径 

工作目录是在哪个目录下运行你的程序,不是项目目录

获取家目录

import pathlib print(pathlib.Path.home()) # 获取当前用户的家目录 

获取文件绝对路径

from pathlib import Path # 当前文件路径 p = Path(__file__) print(p) print(p.absolute()) # 将路径转换为绝对路径,p.resolve()功能也是一样的 

遍历当前目录

from pathlib import Path # 当前文件路径 p = Path('files') for i in p.iterdir(): print(i.absolute()) 

"""运行结果:
C:\Users\3500\PycharmProjects\untitled3\demo\files\json
C:\Users\3500\PycharmProjects\untitled3\demo\files\username.txt
C:\Users\3500\PycharmProjects\untitled3\demo\files\yaml
"""

3、文件属性

from pathlib import Path # 当前文件路径 p = Path(__file__) print(p.absolute()) # 获取绝对路径 print(p.resolve()) # 获取绝对路径 print(p.name) # 获取文件名称 'test.py' print(p.stem) # 只要文件名,不要后缀 test print(p.suffix) # 获取文件 后缀.py print(p.suffixes) # 文件所有的后缀 ['.py'] print(p.parts) # 拆分('C:\\', 'Users', '3500', 'PycharmProjects', 'untitled3', 'demo', 'test.py') print(p.parent) # 获取当前路径的父级目录,C:\Users\35000\PycharmProjects\untitled3\demo print(p.parent.parent) # C:\Users\3500\PycharmProjects\untitled3 print(p.parents) # 所有的父级  print(p.anchor) # 锚,目录前面的部分 C:\ 或者 / 

4、文件判断

from pathlib import Path # 1. is_file() 判断是不是文件 print(Path.cwd().is_file()) # False # 2. is_dir() 判断是不是文件夹 print(Path.cwd().is_dir
                
                

-六神源码网