Python OS模块

os

该模块提供了一种使用与操作系统相关的功能的便捷式途径

方法名作用
os.makedirs(‘dirname1/dirname2’)可生成多层递归目录
os.removedirs(‘dirname1’)若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir(‘dirname’)生成单级目录;相当于shell中mkdir dirname
os.rmdir(‘dirname’)删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir(‘dirname’)列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()删除一个文件
os.rename(“oldname”,“newname”)重命名文件/目录
os.stat(‘path/filename’)获取文件/目录信息
os.system(“bash command”)运行shell命令,直接显示
os.popen("bash command).read()运行shell命令,获取执行结果
os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径
os.chdir(“dirname”)改变当前脚本工作目录;相当于shell下cd

os.name

获取当前运行所在的环境,也就是是导入的操作系统相关模块的名称,有 posix,nt,java 三种。

Linux 和 Mac OS 均会返回 posix
nt全称应为“Microsoft Windows NT”,大体可以等同于 Windows 操作系统,
java则是 Java 虚拟机环境下的返回值。

os.mkdir() —生成单层文件夹

语法结构
		mkdir(path, mode=511, *, dir_fd=None)
代码示例
		import os		
		res = os.mkdir(r'OS_a')

这里用的是相对路径,会新建一个名为 Os_a 的文件夹。
但是 mkdir() 不能生成多级文件夹,也就是 'OS_a\Os_b' 结构 

os.makedirs —生成多层文件夹

功能与 mkdir() 类似,但是 makedirs 可以创建单个文件夹也可以创建多个文件夹

语法结构
		makedirs(name, mode=511, exist_ok=False)
代码示例一(创建单层文件夹):

		import os
		res = os.makedirs(r'OS_a')

代码示例二(创建多层文件夹):

		import os
		res = os.makedirs(r'OS_a\Os_b\Os_c')

os.rmdir() —删除空单层文件夹

根据路径删除文件夹,如果文件夹不存在或不为空,则会分别抛出 FileNotFoundError 或 OSError 异常。也就是说删除的是空的单层文件夹

语法结构
		rmdir(path, *, dir_fd=None)
代码示例
		import os
		res = os.rmdir(r'OS_a\Os_b\Os_c')

基于文件的相对路径删除了文件 Os_c

os.removedirs() —删除空多层文件夹

递归删除,删除方式类似于 rmdir(),不同之处在于,如果成功删除了末尾一级目录,removedirs() 会尝试依次删除 path 中提到的每个父目录,直到抛出错误为止(但该错误会被忽略,因为这通常表示父目录不是空目录)

代码示例
		import os
		res = os.removedirs(r'OS_a\Os_b\Os_c')

根据相对路径,删除了最后的 Os_c 文件夹,删除成功的话会继续删除 Os_c 上一级的文件夹,若也为空则
继续删除,直到不为空。

os.listdir() —查看指定路径中的内容

返回一个包含由 path 指定目录中条目名称组成的列表。 该列表按任意顺序排列

代码示例
		import os
		res = os.listdir(r'C:\Users\ushop')
		print(res)

会生成一个列表,里面的元素是所有的文件夹以及文件名称。

os.remove() —移除单个文件

根据路径删除文件。 如果该路径表示的是文件夹,则会引发异常。 要用 rmdir() 来删除文件夹。

代码示例
		import os
		os.remove(r'a.txt')

删除相对路径名为 a.txt 的文件

os.rename() —给文件重命名

语法结构
		os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

将文件或目录 src 重命名为 dst。如果 dst 已存在,则会操作失败并抛出异常。
代码示例
		import os
		os.rename(r'a.txt', r'b.txt')

os.getcwd() —返回当前路径

返回表示当前工作目录的字符串

代码示例
		import os
		
		res = os.getcwd()
		print(res)

打印当前文件的路径

os.getcwdb()

os.getcwdb() 返回当前路径的字节串

os.chdir() —切换路径

切换的当前工作目录

代码示例
		import os
		
		os.chdir(r'OS_a')
		res = os.getcwd()
		print(res)

打印修改后的路径

os.path

该模块在路径名上实现了一些有用的功能

方法名作用
os.path.abspath(path)返回path规范化的绝对路径
os.path.split(path)将path分割成目录和文件名二元组返回
os.path.dirname(path)返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)如果path是绝对路径,返回True
os.path.isfile(path)如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path, *paths)将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path)返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path)返回path的大小

os.path.split(path) —将路径拆分

将路径 path 拆分为一对,即 (head, tail),其中,tail 是路径的最后一部分,而 head 里是除最后部
分外的所有内容。
'''
tail 部分不会包含斜杠
如果 path 中没有斜杠,head 将为空。
'''
语法格式
		os.path.split(path)
代码示例一
		import os
		
		res = os.path.split(r'F:\python project\re_test\re_a.py')
		print(res)

打印结果
		('F:\\python project\\re_test', 're_a.py')

最后一个斜杠后为 tail 部分。
代码示例二
		import os
		
		res = os.path.split(r're_a.py')
		print(res)

打印结果
		('', 're_a.py')

在没有斜杠的时候,head 部分为空。

os.path.dirname() —返回给定地址所在目录

可以理解为将 path 传入函数 split() 之后,返回的一对值中的第一个元素。

代码示例
		import os
		
		res = os.path.dirname(r'F:\python project\re_test\re_a.py')
		print(res)

打印结果
		F:\python project\re_test

和 os.path.split() 的结果中第一个值相同。
—动态获取绝对路径—

使用 os.path.dirname(__file__) 可以动态获取当前执行文件的绝对路径。

代码示例一(获取当前执行文件的绝对路径)

		import os
		
		res = os.path.dirname(__file__)
		print(res)
		
打印结果
		F:\python project\re_test

将 __file__ 放在 dirname() 中,此时获取的是'当前执行文件的绝对路径',而且在任意文件、任意电脑
都能得到该文件的绝对路径。
代码示例二(获取当前执行文件上层的绝对路径)

		import os
		
		res = os.path.dirname(os.path.dirname(__file__))
		print(res)

打印结果
		F:\python project

采用嵌套的方式获得的是当前执行文件的上一层绝对路径。

前面说 os.path.dirname()方法的值就是 os.path.split() 切分后的第一个值,若此时 dirname 括号
里是嵌套 dirname(__file__),也就相当于将当前文件切分取第一个值,也就是上层绝对路径。	

os.path.basename()

可以理解为 os.path.split() 切分后的第二个值

代码示例
		import os
		
		res = os.path.basename(__file__)
		res1 = os.path.basename(r'F:\python project\re_test\re_a.py')
		print(res)
		print(res1)

打印结果
		re_a.py
		re_a.py

也支持 __file__

os.path.abspath() —返回执行文件自身绝对路径

os.path.abspath(path) 和 os.path.dirname(path) 返回的唯一不同就是 abspath() 返回的路径包含了执行文件自身。

代码示例
		import os
		
		res = os.path.abspath(__file__)
		res1 = os.path.abspath(r'F:\python project\re_test\re_a.py')
		print(res)
		print(res1)

打印结果
		F:\python project\re_test\re_a.py
		F:\python project\re_test\re_a.py

同样的 os.path.abspath() 也支持动态获取执行文件的绝对路径(包含自身)

os.path.exists(path) —判断路径是否存在

所给的路径如果存在返回 True 不存在返回 False

代码示例
		import os
		
		res = os.path.exists(r'F:\python project\re_test\re_a.py')
		print(res)
		res1 = os.path.exists(r'aaaa.txt')
		print(res1)

打印结果
		True
		False

os.path.isabs(path)

判断给定路径是否为绝对路径

代码示例
		import os
		
		res = os.path.isabs(r'F:\python project\re_test\re_a.py')
		print(res)

打印结果 True

os.path.isfile(path)

如果给定路径指向的是一个存在的文件,返回True。否则返回False

代码示例
		import os
		
		res = os.path.isfile(r'OS_a')  # OS_a 是文件夹
		print(res)

打印结果
		False

os.path.isdir(path)

如果给定路径是一个存在的文件夹,则返回True。否则返回False

代码示例
		import os
		
		res = os.path.isfile(r'OS_a')  # OS_a 是文件夹
		print(res)

打印结果
		True

os.path.join()

智能地拼接一个或多个路径部分。 返回值是 path 和 *paths 的所有成员的拼接。
如果某个部分为绝对路径,则之前的所有部分会被丢弃并从绝对路径部分开始继续拼接

语法格式
		os.path.join(path, *paths)
代码示例一
		import os
		
		res = os.path.join(r'OS_a', r'Os_b', r'Os_c')
		print(res)

打印结果
		OS_a\Os_b\Os_c

此结果使用 字符串+字符串 的方式也能实现,但是不同系统之间的路径分割符是不一样的,所以兼容性不强
若是一定要使用字符串相加,可以将结果调用方法realpath()规范路径。
代码示例二
		import os
		
		res = os.path.join(
		    r'F:\python project\re_test\re_a.py', 
		    r'OS_a', 
		    r'F:\python project\re_test\b.py',
		    r'Os_b', 
		    r'Os_c')
		print(res)

打印结果
		F:\python project\re_test\b.py\Os_b\Os_c

像示例中很乱的情况,直接会以从左往右最后一个绝对路径开始拼接。

os.path.getsize(path)

获取指定路径指向的文件大小以字节为单位

代码示例
		import os
		
		res = os.path.getsize(r'F:/python project/re_test/b.txt')
		print(res)
		

os.path.getatime(path)

返回path所指向的文件或者目录的最后访问时间

os.path.getmtime(path)

返回path所指向的文件或者目录的最后修改时间

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythonos模块是一个用于处理文件系统的常用模块。它提供了各种方法来处理文件和目录。在Python中,os模块是跨平台的,这意味着你不需要关心操作系统使用了什么模块os模块会自动选择并调用正确的模块。 通过使用os模块,你可以轻松地获取当前工作目录(即当前Python脚本所在的目录)的路径,使用`os.getcwd()`方法即可实现。 此外,os模块还提供了许多其他有用的方法,例如`os.listdir()`方法可以列出指定路径下的所有文件和目录。你只需要提供一个路径作为参数,比如`os.listdir("C:Users黄伟Desktoppublishos模块 est_os模块")`就可以获取该路径下的所有文件和目录列表。 总结来说,Pythonos模块是一个十分有用的模块,它提供了处理文件系统的功能,包括获取当前工作目录和列出指定路径下的文件和目录等功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python OS 模块](https://blog.csdn.net/hj1993/article/details/129431726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python模块——os模块详解](https://blog.csdn.net/qq_46416934/article/details/125241212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值