iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python四大模块文件管理介绍
  • 117
分享到

Python四大模块文件管理介绍

2024-04-02 19:04:59 117人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、os模块1、方法大纲2、常用方法二、glob模块1、方法大纲2、使用示例三、shutil模块1、方法大纲2、压缩包四、pathlib模块1、对比图2、路径获取3、文件属性4、

一、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)  # 所有的父级 <WindowsPath.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())  # True
# exists() 判断文件是否存在
p = Path('./data.json')
print(p.exists())  # True or False
from pathlib import Path
# 当前文件路径
p = Path(__file__)  # 获取当前文件的路径
print(p.is_absolute())  # True

5、路径拼接

from pathlib import Path
# 当前文件路径
p = Path('./')
print(p.absolute())  # C:\Users\3500\PycharmProjects\untitled3\demo
print(p.joinpath('data.json'))  # data.json
print(p.joinpath('data.json').absolute())   # C:\Users\3500\PycharmProjects\untitled3\demo\data.json
# 拼接多层
print(p.joinpath('files', 'data.json'))   # files\data.json
print(p.joinpath('files', 'data.json').absolute())  # C:\Users\3500\PycharmProjects\untitled3\demo\files\data.json

6、正则匹配

使用模式匹配(正则表达式)匹配指定的路径。glob 只会匹配当前目录下, rglob 会递归所有子目录

比如在当前脚本的 files 目录有以下文件夹和子文件

from pathlib import Path
p = Path('files')
# glob 只会遍历查找当前目录
print(p.glob('*.txt'))  # <generator object Path.glob at 0x000001A44565A518>
print([i for i in p.glob('*.txt')])  # [WindowsPath('files/username.txt')]
print([i for i in p.glob('*.yml')])  # []
# rglob 只会遍历查找当前目录以及其子目录
print(p.rglob('*.txt'))  # <generator object Path.glob at 0x000001A44565A518>
print([i for i in p.rglob('*.txt')])  # [WindowsPath('files/username.txt')]
print([i for i in p.rglob('*.yml')])  # [WindowsPath('files/yaml/aa.yml'), WindowsPath('files/yaml/bb.yml')]
p_ = Path('data.json')
# math 检查匹配规则
print(p_.match('*.json'))  # True

7、读写操作

pathlib 对读取和写入进行了简单的封装,不再需要重复去打开文件和管理文件的关闭了。

  1. .read_text() 读取文本
  2. .read_bytes() 读取 bytes
  3. .write_text() 写入文本
  4. .write_bytes() 写入 tytes
from pathlib import Path
p = Path('yo.txt')
p.write_text("hello world")
print(p.read_text())  # hello world

file.write 操作使用的是 w 模式,如果之前已经有文件内容,将会被覆盖。

当然,pathlib还可以进行文件的创建,删除,以及修改操作,其与os中的方法一样,可以自行去研究

到此这篇关于Python四大模块文件管理介绍的文章就介绍到这了,更多相关Python文件管理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python四大模块文件管理介绍

本文链接: https://www.lsjlt.com/news/120549.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python四大模块文件管理介绍
    目录一、os模块1、方法大纲2、常用方法二、glob模块1、方法大纲2、使用示例三、shutil模块1、方法大纲2、压缩包四、pathlib模块1、对比图2、路径获取3、文件属性4、...
    99+
    2022-11-11
  • Python临时文件创建之tempfile模块介绍
    目录一、tempfile模块简介1、tempfile模块应用场景2、tempfile模块的方法二、tempfile模块主要函数介绍1、Temporaryfile函数2、NamedTe...
    99+
    2022-11-13
  • hadoop常用四大模块文件是什么
    本篇内容介绍了“hadoop常用四大模块文件是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!core-site.xml(工具模块)。包括...
    99+
    2023-06-02
  • Android 访问文件权限的四种模式介绍
    Linux文件的访问权限 * 在Android中,每一个应用是一个独立的用户 * drwxrwxrwx * 第1位:d表示文件夹,-表示文件 * 第2-4位:rwx,表示这个...
    99+
    2022-06-06
    Android
  • Linux文件管理方法介绍
    文件简介 用户通过Shell与linux内核交互。Shell是一个命令行解释工具(是一个软件),它将用户输入的命令转换为内核能够理解的语言(命令)。Linux下,很多工作都是通过命令完成的,学好Linux,首先要掌握常用...
    99+
    2022-06-05
    Linux 文件管理
  • Python文件处理、os模块、glob模块
    目录一、文件基本的操作1、open() 打开文件2、read() 读文件3、write()写文件:4、with open()方法二、文件的打开模式1、文件r打开模式1、读文本2、读字...
    99+
    2022-11-11
  • Node.js中文件操作模块File System的详细介绍
    File System的缩写是fs,该模块提供本地文件的读写能力。 Nodejs导入文件系统模块(fs)语法如下所示: var fs = require("fs"); 异步和同步 Node.js文件系...
    99+
    2022-06-04
    详细介绍 模块 操作
  • Android11文件管理权限申请详细介绍
    目录Android 11文件管理权限申请Android 11和低版本的存储权限结合工具类封装Android 11申请管理所有文件权限的BugAndroid 11文件管理权限申请 An...
    99+
    2022-11-12
  • Ubuntu指令大全系列四——文件权限管理
    三种文件权限 第一段 文件类型 d 目录 - 普通文件 l 链接文件 第二段 所属用户的权限 第三段 所属组的权限 第四段 其它用户的权限 r 只读 ...
    99+
    2022-06-03
    Linux Ubuntu 文件权限 系统指令
  • Python logging.handlers模块,RotatingFileHandler、TimedRotatingFileHandler 处理器各参数详细介绍
    文章目录 一、RotatingFileHandler 介绍二、TimedRotatingFileHandler 介绍 在python的logging.handlers模块中,提供了很多...
    99+
    2023-09-21
    python
  • Android编写简易文件管理模块
    最近在做一个将word文档导入到SQLite的程序。对于文件选择问题,经过再三考虑决定写一个简易的文件管理模块,用来选择需要导入的文件文件 先看下效果图: 思路: 获取存...
    99+
    2022-06-06
    模块 文件管理 Android
  • 宝塔面板的WebDAV文件管理功能介绍
    宝塔面板的WebDAV文件管理功能是指通过WebDAV协议来管理服务器上的文件。WebDAV(Web Distributed Aut...
    99+
    2023-10-10
    宝塔面板
  • python处理excel文件之xlsxwriter 模块
    目录模块基本使用写入更多样式数据其余样式扩展xlsxwriter 中的 write 方法xlsxwriter 关闭文件其它需要了解的方法xlsxwriter 模块的优缺点优点缺点模块...
    99+
    2022-11-11
  • python内置模块之上下文管理contextlib
    Python中当我们们打开文本时,通常会是用with语句,with语句允许我们非常方便的使用资源,而不必担心资源没有关闭。 with open('/path/filename', '...
    99+
    2022-11-13
  • Python使用openpyxl模块处理Excel文件
    首先贴出四种方法适用范围比较: 注释:Excel 2003 即XLS文件有大小限制即65536行256列,所以不支持大文件。而Excel 2007以上即XLSX文件的限制则为1048...
    99+
    2022-11-11
  • 如何在 Python 中使用 path 模块来管理文件路径?
    当你在 Python 中需要操作文件时,了解如何管理文件路径是非常重要的。Python 的 pathlib 模块提供了一种更加面向对象的方式来管理文件路径,而且它比传统的字符串处理方式更加安全和直观。在本文中,我们将介绍如何使用 pathl...
    99+
    2023-10-09
    接口 path 日志
  • python怎么用xlsxwriter模块处理excel文件
    本篇内容介绍了“python怎么用xlsxwriter模块处理excel文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!模块安装:pip&...
    99+
    2023-06-30
  • Python文件处理方法、os模块和glob模块如何使用
    这篇文章主要讲解了“Python文件处理方法、os模块和glob模块如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python文件处理方法、os模块和glob模块如何使用”吧!一、文...
    99+
    2023-07-06
  • Python文件处理方法、os模块和glob模块怎么使用
    这篇“Python文件处理方法、os模块和glob模块怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python文件...
    99+
    2023-06-30
  • python+pytest接口自动化之日志管理模块loguru简介
    目录安装简单示例add()常用参数说明使用python自带日志管理模块logging,使用时可进行模块化配置,详细可参考博文Python日志采集(详细)。 但logging配置起来比...
    99+
    2022-11-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作