IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python之os模块 -> 正文阅读

[人工智能]python之os模块

描述

该模块提供了一种使用操作系统相关功能的可移植方式。

指导文献

链接:os — Miscellaneous operating system interfaces — Python 3.7.13 documentation

使用规则

os为一个模块,如果需要使用该模块中的方法,需要先进行导入,如下所示:

import os

模块内置方法(V3.7)

  • os.getcwd()

用途:获得当前工作目录,即当前python脚本工作的目录路径。

返回值:返回代表当前工作目录的字符串。

例:

>>> import os
>>> print(os.getcwd())
E:\pythonProject\learning\day3 #输出结果为当前工作目录
  • os.chdir(path)

用途:改变当前工作目录到指定的路径

返回值:无。

????????其中,

????????参数path -- 要改变的新路径,可以始终指定为字符串。

例:

>>> import os
>>> print(os.getcwd())
E:\pythonProject\learning\day3 #输出结果为当前工作目录
>>> os.chdir("test") #改变到当前目录的test目录下
>>> print(os.getcwd())
E:\pythonProject\learning\day3\test #输出结果为改变后的当前工作目录
>>> os.chdir("..") #返回上一层目录
>>> print(os.getcwd())
E:\pythonProject\learning\day3 #输出结果为当前工作目录
  • os.makedirs(name, mode=0o777, exist_ok=False)

用途:递归目录创建功能。 与 mkdir() 类似,但使所有需要包含叶目录的中间级目录。

返回值:无。

????????其中,

????????参数name -- 需要递归创建的目录,可以是相对或者绝对路径。

????????参数mode -- 权限模式

????????参数exist_ok -- 如果值为False,如果创建的name存在,则会抛出FileExistsError

例:

>>> import os
# 第一次创建文件夹
>>> os.makedirs("test\osTest") #在该文件的所属文件夹中新增test\osTest文件夹
# 第二次创建同样的文件夹
>>> os.makedirs("test\osTest") #由于第一次文件夹已经创建,但说exist_ok参数默认为Flase,则抛出异常
Traceback (most recent call last):
 ?File "<pyshell#3>", line 1, in <module>
 ? ?os.makedirs("test\osTest")
 ?File "E:/pythonProject/learning/day3/os模块.py, line 221, in makedirs
 ? ?mkdir(name, mode)
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'test\\osTest'
>>> os.makedirs("test\osTest", exist_ok = True) #不会抛出异常
>>> 
  • os.mkdir(path, mode=0o777, *, *dir_fd=None)

用途:以数字权限模式创建目录。

返回值:无。

????????其中,

????????参数path -- 如果创建的name存在,则会抛出FileExistsError

????????参数mode -- 权限模式

????????参数dir_fd -- 如果dir_fd不是None,它应该是一个打开目录的文件描述符,路径应该是相对的。

例:

>>> import os
>>> os.mkdir("temp") #第一次创建temp目录
>>> os.mkdir("temp") #第二次创建temp目录,已存在,则抛出异常
Traceback (most recent call last):
 ?File "E:/pythonProject/learning/day3/os模块.py", line 4, in <module>
 ? ?os.mkdir("temp")
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: 'temp'
  • os.removedirs(name)

用途:递归删除目录。如果子文件夹被成功删除,会尝试删除路径中提到的每个父目录,直到抛出一个错误(其基本被忽略,因为它通常意味着父目录不为空)。例:os.removedirs('foo/bar/baz')将首先删除目录'foo/bar/baz',如果父目录'foo/bar'和父目录'foo'也为空,则删除父目录'foo/bar' 和父目录'foo',否则不删除。 如果无法成功删除目录'foo/bar/baz',则引发 OSError。

返回值:无。

????????其中,

????????参数name -- 要删除的目录路径。

例:

>>> import os
>>> os.makedirs("foo\\bar\\baz") #创建目录
>>> os.removedirs("foo\\bar") #删除bar文件夹,但说bar文件夹中有baz文件夹,因此抛出OSError异常
Traceback (most recent call last):
 ?File "E:/pythonProject/learning/day3/os模块.py", line 5, in <module>
 ? ?os.removedirs("foo\\bar")
 ?File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\os.py", line 239, in removedirs
 ? ?rmdir(name)
OSError: [WinError 145] 目录不是空的。: 'foo\\bar'
>>> os.removedirs("foo\\bar\\baz") #成功删除文件夹baz,由于文件夹baz的父文件夹foo\bar和父文件夹foo中都为空,因此将父文件夹foo\bar和父文件夹foo也一并删除。
>>> 
  • os.rmdir(path)

用途:删除单级目录路径。 如果目录不存在或不为空,则分别引发 FileNotFoundError 或 OSError。

返回值:无。

????????其中,

????????参数path -- 要删除的目录路径。

例:

>>> import os
>>> os.makedirs("foo\\bar\\baz") #创建目录
>>> os.rmdir("foo\\bar") #删除bar文件夹,但说bar文件夹中有baz文件夹,因此抛出OSError异常
Traceback (most recent call last):
 ?File "E:/pythonProject/learning/day3/os模块.py", line 6, in <module>
 ? ?os.rmdir("foo\\bar")
OSError: [WinError 145] 目录不是空的。: 'foo\\bar'
>>> os.rmdir("foo\\baz") #删除不存在的目录
Traceback (most recent call last):
 ?File "E:/pythonProject/learning/day3/os模块.py", line 6, in <module>
 ? ?os.rmdir("foo\\baz")
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'foo\\baz'
>>> os.rmdir("foo\\bar\\baz") #删除bar文件夹,文件夹baz的父文件夹foo\bar和父文件夹foo中虽然都为空,但是也不会删除。
  • os.listdir(path)

用途:获取包含路径给定目录中所有文件条目(包括文件或文件夹)的名称。

返回值:包含路径给定目录中所有文件条目的名称的列表,该列表按任意顺序排列,不包括特殊条目“.” 和 “..”,即使它们存在于目录中。

????????其中,

????????参数path -- 需要列出的目录路径,其可指定为str或bytes。如果路径是字节,返回的文件名也将是字节; 在所有其他情况下,返回的文件名将是 str。如果 path 为 None,则使用 path='.'。

例:

>>> import os
>>> os.makedirs("foo\\bar\\baz") #创建目录
>>> os.mkdir("foo\\bar\\test") #创建目录
>>> dirList = os.listdir("foo\\bar") #通过上述的创建目录,可得知文件夹foo\bar中存在文件夹baz和文件夹test
>>> print(dirList)
['baz', 'test']
  • os.remove(path)

用途:删除指定路径的文件。如果指定的路径是一个目录,将抛出PermissionError。如果路径错误,将抛出FileNotFoundError。

返回值:无。

????????其中,

????????参数path -- 要移除的文件路径。

例:

>>> import os
>>> dirList = os.listdir("foo\\bar")
>>> print(dirList)
['baz', 'temp.txt', 'test']
>>> os.remove("foo\\bar") #删除文件夹时,抛出异常
Traceback (most recent call last):
 ?File "E:/pythonProject/learning/day3/os模块.py", line 10, in <module>
 ? ?os.remove("foo\\bar\\baz")
PermissionError: [WinError 5] 拒绝访问。: 'foo\\bar\\baz'
>>> os.remove("foo\\bar\\temp") #删除错误路径,从上可得知,temp是一个文件,系统找不到该文件,则抛出异常。
Traceback (most recent call last):
 ?File "E:/pythonProject/learning/day3/os模块.py", line 10, in <module>
 ? ?os.remove("foo\\bar\\temp")
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'foo\\bar\\temp'
>>> os.remove("foo\\bar\\temp.txt") #删除正确路径的文件
>>> print(os.listdir("foo\\bar"))
['baz', 'test'] ?#删除成功
  • os.rename(src, dst)

用途:重命名文件或目录。如果要修改的目录名路径错误,将抛出FileNotFoundError。

返回值:无。

????????其中,

????????参数src -- 要修改的目录名。

????????参数dst -- 修改后的目录名。

例:

>>> import os
>>> print(os.listdir("foo\\bar")) #列出路径下已有文件或文件夹
['baz', 'temp.txt', 'test'] #已有文件和文件夹
>>> os.rename("foo\\bar\\test1", "foo\\bar\\test") #原路径不存在,抛出异常
Traceback (most recent call last):
 ?File "E:/pythonProject/learning/day3/os模块.py", line 9, in <module>
 ? ?os.rename("foo\\bar\\test1", "foo\\bar\\test")
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'foo\\bar\\test1' -> 'foo\\bar\\test'
>>> os.rename("foo\\bar\\test", "foo\\bar\\test1") #将test修改为test1
>>> print(os.listdir("foo\\bar")) #列出路径下已有文件或文件夹
['baz', 'temp.txt', 'test1'] #test成功修改为test1
>>> os.rename("foo\\bar\\temp.txt", "foo\\bar\\temp1.txt") #修改文件temp.txt为temp1.txt
>>> print(os.listdir("foo\\bar"))
['baz', 'temp1.txt', 'test1'] #修改成功
  • os.stat(path)

用途:在给定的路径上执行一个系统 stat 的调用

返回值:stat_result(st_mode: 保护模式, st_ino:索引节点, st_dev:驻留的设备, st_nlink:链接数, st_uid:所有者的用户ID, st_gid:所有者的组ID, st_size:普通文件以字节为单位的大小;包含等待某些特殊文件的数据, st_atime:上次访问的时间, st_mtime:最后一次修改的时间, st_ctime:由操作系统报告的"ctime",在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

????????其中,

????????参数path -- 给定的路径,其可以是字符串、字节、类路径对象或打开文件描述符int。

例:

>>> import os
>>> print(os.stat(""os模块.py""))
os.stat_result(st_mode=33206, st_ino=5348024557598908, st_dev=18467, st_nlink=1, st_uid=0, st_gid=0, st_size=438, st_atime=1649159528, st_mtime=1649159528, st_ctime=1649075190) ?#输出结果
  • os.path.split(path)

用途:拆分路径名。

返回值:返回元组 (head, tail),其中tail是最后一个斜线之后的所有内容。

????????其中,

????????参数path -- 给定拆分的路径。

例:

>>> import os
>>> print(os.path.split(r"E:\pythonProject\learning\day3\os模块.py"))
('E:\\pythonProject\\learning\\day3', 'os模块.py') #输出结果,其中head = 'E:\\pythonProject\\learning\\day3',tail = 'os模块.py',即:tail是最后一个斜线之后的所有内容
>>> print(os.path.split(r"E:\pythonProject\learning\day3"))
('E:\\pythonProject\\learning', 'day3') #输出结果,其中head = 'E:\\pythonProject\\learning,tail = 'day3',即:tail是最后一个斜线之后的所有内容
  • os.path.dirname(path)

用途:获得文件路径。

返回值:返回文件路径,即os.path.split(path)所返回的head部分。

????????其中,

????????参数path -- 文件路径。

例:

>>> import os
>>> print(os.path.split(r"E:\pythonProject\learning\day3\os模块.py"))
('E:\\pythonProject\\learning\\day3', 'os模块.py') #输出结果
>>> print(os.path.dirname(r"E:\pythonProject\learning\day3\os模块.py"))
E:\pythonProject\learning\day3 #输出结果
  • os.path.basename(path)

用途:获得文件名。

返回值:返回文件名,即os.path.split(path)所返回的tail部分。

????????其中,

????????参数path -- 文件路径。

例:

>>> import os
>>> print(os.path.split(r"E:\pythonProject\learning\day3\os模块.py"))
('E:\\pythonProject\\learning\\day3', 'os模块.py') #输出结果
>>> print(os.path.basename(r"E:\pythonProject\learning\day3\os模块.py"))
os模块.py #输出结果
  • os.path.join(path1[, path2[, ...]])

用途:合并两个或多个路径。

返回值:返回合并路径。

????????其中,

????????参数path1 -- 需要合并的路径。

????????参数path2 -- 需要合并的路径。

例:

>>> import os
>>> head, middle, tail = "E:\pythonProject", "learning", "day3\os模块.py"
>>> print(os.path.join(head, middle, tail))
E:\pythonProject\learning\day3\os模块.py #输出结果
  • os.path.exists(path)

用途:检测路径是否存在。

返回值:如果路径存在,则返回True,否则返回False。

????????其中,

????????参数path -- 需要检测的路径。

例:

>>> import os
>>> path = os.getcwd()
>>> print(os.path.exists(path))
True #输出结果
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2022-04-06 16:17:41  更:2022-04-06 16:18:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:57:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码