百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

重新开始学习Python 第二十三天 Python OS模块

toyiye 2024-06-21 12:20 9 浏览 0 评论

Python OS内置模块

前边文章主要介绍了Python的基本概念,函数等,这篇文章开始,将要介绍Python的常用的模块,这一篇文章介绍OS模块。

OS模块是Python常用的模块之一。对寻找文件,处理文件起到辅助的作用。

OS模块常用的方法。

os.chdir(path) 改变当前工作目录

os.chmod(path, mode) 更改权限(Linux常用)

os.chown(path, uid, gid) 更改文件所有者(Linux常用)

os.getcwd() 返回当前工作目录

os.getcwdu() 返回一个当前工作目录的Unicode对象

os.mkdir(path[, mode]) 以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。

os.makedirs(path[, mode]) 递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。

os.remove(path) 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。

os.removedirs(path) 递归删除目录。

os.rename(src, dst) 重命名文件或目录,从 src 到 dst

os.renames(old, new)递归地对目录进行更名,也可以对文件进行更名。

os.rmdir(path) 删除path指定的空目录,如果目录非空,则抛出一个OSError异常。

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) 输出在文件夹中的文件名通过在树中游走,向上或者向下。

参数

  • top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。
  • topdown --可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。
  • onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
  • followlinks -- 设置为 true,则通过软链接访问目录。

os.path 模块 获取文件的属性信息。

os.path.abspath(path) 返回绝对路径

os.path.basename(path) 返回文件名

os.path.commonprefix(list) 返回list(多个路径)中,所有path共有的最长的路径

os.path.dirname(path) 返回文件路径

os.path.exists(path) 路径存在则返回True,路径损坏返回False

os.path.lexists 路径存在则返回True,路径损坏也返回True

os.path.expanduser(path) 把path中包含的"~"和"~user"转换成用户目录

os.path.expandvars(path) 根据环境变量的值替换path中包含的"$name"和"${name}"

os.path.getatime(path) 返回最近访问时间(浮点型秒数)

os.path.getmtime(path) 返回最近文件修改时间 os.path.getctime(path) 返回文件 path 创建时间

os.path.getsize(path) 返回文件大小,如果文件不存在就返回错误

os.path.isabs(path) 判断是否为绝对路径

os.path.isfile(path)判断路径是否为文件

os.path.isdir(path) 判断路径是否为目录

os.path.islink(path) 判断路径是否为链接

os.path.ismount(path) 判断路径是否为挂载点

os.path.join(path1[, path2[, ...]]) 把目录和文件名合成一个路径

os.path.normcase(path) 转换path的大小写和斜杠

os.path.normpath(path) 规范path字符串形式

os.path.realpath(path) 返回path的真实路径

os.path.relpath(path[, start]) 从start开始计算相对路径

os.path.samefile(path1, path2) 判断目录或文件是否相同

os.path.sameopenfile(fp1, fp2) 判断fp1和fp2是否指向同一文件

os.path.samestat(stat1, stat2) 判断stat tuple stat1和stat2是否指向同一个文件

os.path.split(path) 把路径分割成 dirname 和 basename,返回一个元组

os.path.splitdrive(path) 一般用在 windows 下,返回驱动器名和路径组成的元组

os.path.splitext(path) 分割路径,返回路径名和文件扩展名的元组

os.path.splitunc(path) 把路径分割为加载点与文件

os.path.walk(path, visit, arg) 遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数

os.path.supports_unicode_filenames 设置是否支持unicode路径名

接下来是利用OS模块遍历文件目录的两个例子,这两个例子比较常用,感兴趣的可以学习使用。

#查找指定目录下的文件及目录

import os
def all_path(dirname):
 result = []#所有的文件
 for maindir, subdir, file_name_list in os.walk(dirname):
 print("1:",maindir) #当前主目录
 print("2:",subdir) #当前主目录下的所有目录
 print("3:",file_name_list) #当前主目录下的所有文件
 for filename in file_name_list:
 apath = os.path.join(maindir, filename)#合并成一个完整路径
 result.append(apath)
 return result
print(all_path(r"F:\Test"))

#查找指定目录下指定格式的文件及目录

import os
filter=[".txt"] #设置过滤后的文件类型 当然可以设置多个类型
def all_path(dirname):
 result = []#所有的文件
 for maindir, subdir, file_name_list in os.walk(dirname):
 # print("1:",maindir) #当前主目录
 # print("2:",subdir) #当前主目录下的所有目录
 # print("3:",file_name_list) #当前主目录下的所有文件
 for filename in file_name_list:
 apath = os.path.join(maindir, filename)#合并成一个完整路径
 ext = os.path.splitext(apath)[1] # 获取文件后缀 [0]获取的是除了文件名以外的内容
 if ext in filter:
 result.append(apath)
 return result
print(all_path(r"F:\Test"))

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码