python os模块和fnmatch模块的使用介绍

一、先介绍一下os模块

import os
 
print(os.getcwd())
# E:\python\test\python_models
# 获取当前的目录
 
 
print(os.listdir("."))
# ['oop.py', 'python_argparse.py', 'python_click.py', 'python_os.py', 'python_re.py', 'python_requests.py', 'xx.py', '__init__.py']
# 列出指定目录下的所有文件和文件夹,返回的是一个列表

1、拆分路径的方法介绍

# 1、拆分路径的方法介绍
# os.path模块用来对文件和路径进程管理,显示他包含很多拆分路径的函数,os.path模块中和拆分路径相关的函数有
 
# os.path.split()  返回一个二元组,包含文件的路径和文件名
# os.path.dirname()  返回文件的路径
# os.path.basename()   返回文件的文件名
# os.path.splitext()     返回一个不包括文件扩展名的部分和文件扩展名的二元组
 
# 下面演示一下上面介绍的方法
path = "G:\新建文件夹\疯狂\永久地址.txt"
 
print(os.path.split(path))
# ('G:\\新建文件夹\\疯狂', '永久地址.txt')
 
print(os.path.dirname(path))
# G:\新建文件夹\疯狂
 
print(os.path.basename(path))
 
print(os.path.splitext(path))
# ('G:\\新建文件夹\\疯狂\\永久地址', '.txt')

2、构建文件路径的方法介绍

# 2、构建路径的方法介绍
# python工程师可以使用os.path模块方便的拆分路径,相应的,os.path模块的也包含了用以构建路径的函数,其中最常用的是
 
# os.path.expanduser()    展开用户的HOME目录,比如~,~username
# os.path.abspath()         得到文件或路径的绝对路径
# os.path.join()              根据不同的操作系统平台,使用不用的路径分隔符拼接路径
 
# 下面演示一下上面介绍的方法
# os.path.expanduser("~mysql") 返回mysql用户的HOME目录,我这里是windows平台,就不演示这个命令了
 
 
print(os.path.abspath("."))
# E:\python\test\python_models
 
print(os.path.abspath(".."))
# E:\python\test
 
# 相应的有一个方法可以判断一个路径是否为绝对路径
print(os.path.isabs("."))
# False
print(os.path.isabs(os.path.abspath(".")))
# True
 
 
print(os.path.join(os.path.abspath("."),"test","join.text"))
# E:\python\test\python_models\test\join.text
 
# 在python代码中,可使用__file__这个特殊的变量表示当前代码所在的源文件,在编写代码时,有时候需要导入当前源文件父目录下的软件包,因此需要用到
# 这里的路径函数获取源文件的父目录,如下所示
path = os.path.abspath(__file__)
print(path)
# E:\python\test\python_models\python_os.py
 
print(os.path.dirname(path))
# E:\python\test\python_models
 
print(os.path.pardir)
# ..
 
print(os.path.abspath(os.path.join(os.path.dirname(path),os.path.pardir)))
# E:\python\test

3、获取文件属性的方法介绍

# 3、获取文件属性
# os.path模块也包含了若干函数用来获取文件的属性,包括文件的创建时间,修改时间,文件的大小,访问时间
# os.path.getatime()        返回文件的访问的时间
# os.path.getmtime()          返回文件的修改的时间
# os.path.getctime()          返回文件的创建时间
# os.path.getsize()           返回文件的大小

4、判断文件的类型

# 4、判断文件类型
# os.path模块也提供了若干函数用来判断路径是否存爱,以及路径所指的文件的类型,这些判断类的函数一般以is开头,并且返回一个Boolean型的结果
 
# os.path.exists()      参数path指向的路径是否存在
# os.path.isfile()        参数path指向的路径存在,且为文件
# os.path.isdir()           参数path指向的路径存在,且为目录
# os.path.islink()            参数path指向的路径存在,且是一个连接
# os.path.ismount()            参数path指向的路径存在,且是一个挂载点

5、文件和目录操作

# 5、文件和目录的操作
# os模块保留文件和目录的操作函数,包括创建目录,删除目录,删除文件,重命名文件等
# os.remove()      删除path路径所指向的文件
# os.rmdir()         删除path路径锁指向的文件夹,该文件夹必须为空,否则会报失败
# os.mkdir()         创建一个文件夹
# os.rename()        重命名一个文件或者文件夹

6、修改文件属性和判断文件属性

# 6、修改文件权限和判断文件权限
# os模块也包含了修改文件权限,判断文件权限的函数,即chmod和access,chmod用来修改文件的权限,access用来判断文件是否具有相应的权限,在linux中,
# 权限分为读,写和执行,因此os模块也提供了三个常量来表示读,写,执行,即R_OK,W_OK,X_OK
 
 
print(os.access(__file__,os.R_OK))
# True
 
print(os.access(__file__,os.W_OK))
# True
print(os.access(__file__,os.X_OK))
# True
 
os.chmod(__file__,os.W_OK)

7、遍历目录树

# 7、os.walk遍历目录树
# 前面的例子都是查找某一个目录下的文件并通过模式匹配去选择自己需要的文件类型,在实际工作中,更有可能遇到的是查找某个目录及其子目录下的所有的文件
# 。例如查找某个目录及其子目录下所有的图片,查找某个目录及其子目录下最大的十个文件,对于这类的需求可以使用os模块walk方法,walk方法遍历某个目录及其
# 子目录,对于每一个目录,walk返回一个三元组,dirpath,dirnames,filenames,其中dirpath保存的是当前的目录,dirnames是当前目录下的子目录列表,filenames
# 是当前目录下的文件列表
 
for a,b,c in os.walk(".."):
    print(a,b,c,"walk---------")
 
    # a为当前的目录
    # b为当前目录下目录
    # c为当前目录下的文件

二、fnmatch模块介绍

# 8、查找文件
# 使用fnmatch来查找特定的文件,大部分情况下,使用字符串匹配查找特定的文件就能满足需求,如果需要更加灵活的字符串匹配,可以使用标准库中的fnmatch库,这个库
# 专门用来进行文件名匹配,支持使用通配符进行文件名的匹配

1、fnmatch支持的通配符如下

# fnmatch支持的通配符如下
# *           匹配任何数量的字符
# ?           匹配单个字符
# [sep]       匹配sep中的字符
# [!sep]      匹配除了sep以为的任何字符

2、fnmatch的常用方法介绍

# fnmatch常用的方法
# fnmatch.fnmatch()    判断文件名是否符合特定的模式,区分大小写
# fnmatch.fnmatchcase()  判断文件名是否符合特定的模块,不区分大小写
# fnmatch.filter()       返回输入列表中,符合特定模式的文件名列表
# fnmatch.translate()     将通配符匹配模式转换成正则表达式

3、fnmatch.fnmatch方法介绍

for file in os.listdir("."):
    if fnmatch.fnmatch(file,"*.html"):
        print(file)
 
    elif fnmatch.fnmatch(file,"[a-z]??.py"):
        print(file,"hahah")
    elif fnmatch.fnmatch(file,"[!a-o]*"):
        print(file)
    else:
        pass

4、fnmatch.filter方法介绍


# filter方法和fnmatch一样,只是filer需要传递一个文件的列表进行,返回一个符合匹配规则的列表
print(fnmatch.filter(os.listdir("."),"*py"))

以上就是python os模块和fnmatch模块的使用介绍的详细内容,更多关于python os模块和fnmatch模块的资料请关注我们其它相关文章!

(0)

相关推荐

  • python中os.remove()用法及注意事项

    计算机一般来说是需要定期的清理,系统的内存不能无限延伸,同时有一些不需要的文件也可以得以清除掉.有些人会使用os.remove来进行文件的清楚,从而导致一些错误的出现,可以说这是对于os.remove的用法还没有熟练掌握.下面我们就os.remove的详细用法及使用注意分别介绍. 1.语法 os.remove(path) 2.参数 path -- 要移除的文件路径 3.返回值 该方法没有返回值 4.使用注意 (1)不能用来删除文件夹,否则拒绝访问. # -*- coding:utf-8 -*-

  • Python3+Django get/post请求实现教程详解

    一.说明 之前写了一篇"Python3+PyCharm+Django+Django REST framework开发教程 ",想着直接介绍rest就完了.但回过头来看,一是rest在解耦的同时将框架复杂化了如果没有多终端那rest根本没有降低复杂度反而增加了复杂度,二是基础的get和post实现自己还是看半天.所以还是有必要再写一篇来介绍django常规的MVC开发. 环境搭建程项目创建都类似的的rest化部分之前(2.5及之前)进行操作即可,就不重复说明了.这里我创建的项目为djan

  • Python request post上传文件常见要点

    通用用法 但上图的字段名,类型需要根据不同接口填写,如某服务接口: 因而对应的上传代码如下: # 输出参数:请求响应报文 import requests request_url = 'https://XXXXX/file-upload' head = { # "Content-Type": "multipart/form-data; boundary=alamofire.boundary.3c7024a080e6a27f", #注意,此处不要写Content-Typ

  • 安装python依赖包psycopg2来调用postgresql的操作

    1.先安装psycopg2的依赖组件 本案例的操作系统为linux red hat 在安装python依赖包psycopg之前,你必须需要先安装postgresql数据库的相关组件: postgresql-devel,postgresql,postgresql-libs这三个组件比较重要.另外,可选组件:postgresql-server 安装上述组件之前,可以用命令来查看你的系统现在是否已经安装了相关组件: [root@dthost27 ~]# rpm -qa | grep PostgreSQ

  • CentOS中安装python3.8.2的详细教程

    最新的CentOS8已经内置了Python2和Python3,出入Python2和Python3两个命令可以分别进入Python2和Python3. CentOS8内置的Python3版本为3.6.8,我们需要将它升级到3.8.2 首先下载Python3.8.2的安装包 wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz 下载好安装包后,下载python3.8所需要的环境依赖包 yum install gcc openssl

  • Python中fnmatch模块的使用详情

    fnamtch就是filenamematch, 在python中利用符合linuxshell风格的匹配模块来进行文件名的匹配筛选工作. fnmatch()函数匹配能力介于简单的字符串方法和强大的正则表达式之间,如果在数据处理操作中只需要简单的通配符就能完成的时候,这通常是一个比较合理的方案.此模块的主要作用是文件名称的匹配,并且匹配的模式使用的Unix shell风格.源码很简单: """Filename matching with shell patterns. fnmat

  • Python调用系统命令os.system()和os.popen()的实现

    作为一门脚本语言,写脚本时执行系统命令可以说很常见了,python提供了相关的模块和方法. os模块提供了访问操作系统服务的功能,由于涉及到操作系统,它包含的内容比较多,这里只说system和popen方法. >>> import os >>> dir(os) ['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RAND

  • Python通过fnmatch模块实现文件名匹配

    fnmatch 模块主要用于文件名称的匹配,其能力比简单的字符串匹配更强大,但比使用正则表达式相比稍弱..如果在数据处理操作中,只需要使用简单的通配符就能完成文件名的匹配,则使用 fnmatch 模块是不错的选择. fnmatch 模块中,常用的函数及其功能如表 1 所示. Python fnmatch模块常用函数及功能 函数名 功能 fnmatch.filter(names, pattern) 对 names 列表进行过滤,返回 names 列表中匹配 pattern 的文件名组成的子集合.

  • python 插入Null值数据到Postgresql的操作

    数据库中最好插入Null值. 在python中,暂时没找到通过sql语句的方式插入Null值. 推荐使用轮子的方法 def insert_sample_data(self, values): # added self since you are referencing it below with self.con.cursor() as cur: sql = "insert into sampletable values (%s, %s, %s)" # Use %s for param

  • python os模块和fnmatch模块的使用介绍

    一.先介绍一下os模块 import os   print(os.getcwd()) # E:\python\test\python_models # 获取当前的目录     print(os.listdir(".")) # ['oop.py', 'python_argparse.py', 'python_click.py', 'python_os.py', 'python_re.py', 'python_requests.py', 'xx.py', '__init__.py'] #

  • python os.listdir()乱码解决方案

    计算机一般来说是需要定期的清理,系统的内存不能无限延伸,同时有一些不需要的文件也可以得以清除掉.有些人会使用os.remove来进行文件的清楚,从而导致一些错误的出现,可以说这是对于os.remove的用法还没有熟练掌握.下面我们就os.remove的详细用法及使用注意分别介绍. 1.语法 os.listdir(path) 2.参数 path – 目标目录的路径,即路径的字符串表示. 3.返回值 指定路径下,文件和文件夹名字的列表. 4.实例 #!/usr/bin/python # -*- co

  • 基于Python os模块常用命令介绍

    1.os.name---判断现在正在实用的平台,Windows返回'nt':linux返回'posix' 2.os.getcwd()---得到当前工作的目录. 3.os.listdir()--- 4.os.remove---删除指定文件 5.os.rmdir()---删除指定目录 6.os.mkdir()---创建目录(只能创建一层) 7.os.path.isfile()---判断指定对象是否为文件.是则返回True. 8.os.path.isdir()---判断指定对象是否为目录 9.os.p

  • Python os模块学习笔记

    一.os模块概述 Python os模块包含普遍的操作系统功能.例如文件的复制.创建.修改.删除文件及文件夹... 二.常用方法 1.os.listdir()   返回指定目录下的所有文件和目录名. 2.os.remove()  删除一个文件. 3.os.system()  运行shell命令. 4.os.path.split()   函数返回一个路径的目录名和文件名 5.os.path.isfile()和os.path.isdir()   函数分别检验给出的路径是一个文件还是目录,返回值分别为

  • Python使用os模块和fileinput模块来操作文件目录

    os模块 在python编程中,我们会经常使用到文件和目录,这些操作python提供一个os模块,里面有很多操作文件和目录的函数. 下面介绍os的常用功能 1.获取当前路径 >>> os.getcwd() '/root/python' 2.获取目录中的内容 >>> os.listdir(os.getcwd()) ['deco.py', '6.py', 'inputfile.py', 'uniFile.py', 'oddnogen.py', 'ospathex.py',

  • python os模块简单应用示例

    本文实例讲述了python os模块简单应用.分享给大家供大家参考,具体如下: 举例中的目录形式如下所示: In [36]: pwd Out[36]: '/home/python/Desktop/code' In [37]: ls hello.py hello.txt test.py 文件夹01/ 文件夹02/ 文件夹03/ 1.当前路径及路径下的文件 os.getcwd():查看当前所在路径. os.listdir(path):列举目录下的所有文件.返回的是列表类型. In [1]: impo

  • 使用python os模块复制文件到指定文件夹的方法

    复制一个文件夹的文件到指定目录下 import os import shutil import time start_time = time.time() # 需要被复制的文件夹 old_path = r'D:\zjf_workspace\001-地标.利器.服饰\004文本\json1' new_path = r'D:\zjf_workspace\001-地标.利器.服饰\004文本\json' all_list = os.listdir(old_path) for i in all_list

  • Python OS模块实例详解

    本文实例讲述了Python OS模块.分享给大家供大家参考,具体如下: os模块 在自动化测试中,经常需要查找操作文件,比如查找配置文件(从而读取配置文件的信息),查找测试报告等等,经常会对大量文件和路径进行操作,这就需要依赖os模块. 1. os.getcwd() 功能:查看当前所在路径 import os print(os.getcwd()) 2. os.listdir() 列举目录下所有的文件,返回的是列表类型 import os print(os.listdir("c:\file&quo

  • python os.path模块常用方法实例详解

    os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法.更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html 1.os.path.abspath(path) 返回path规范化的绝对路径. >>> os.path.abspath('test.csv') 'C:\\Python25\\test.csv' >>> os.path.abspath('c:\\test.csv') '

  • Python os模块常用方法和属性总结

    这篇文章主要介绍了Python os模块常用方法和属性总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. os 模块常用的方法及属性 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'. os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径. os.getenv()和os.putenv:分别用来

随机推荐