9.3 Python的 os 模块

9.3 Python的 os 模块 9.3.1 什么是os 模块 一个py 文件就是一个模块。 一个模块就是一个写好了代码的Py 文件,里面有类、函数、变量

9.3 Python的 os 模块

9.3.1 什么是os 模块

一个py 文件就是一个模块。
一个模块就是一个写好了代码的Py 文件,里面有类、函数、变量。

os 模块是Python中的一个内置模块。
os 模块是一个与操作系统相关的一个模块,它可以调用系统文件。

os 模块的作用:os 模块是Python中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文件和目录。
比如:显示当前目录下所有文件/删除某个文件/获取文件大小…

【课堂练习:单选题】
已知,os 模块是Python中的一个内置模块,下面关于 os 模块的理解,说法正确的是?
A. os 模块本质上是一个 Python 文件
B. os 模块需要下载、安装后才能使用
C. os 模块属于标准库,需要安装
D. os 模块由多个 Python 文件的集合而成

正确答案:A
一个模块就是一个Python文件,因此A正确,D错误。
os 模块是内置模块,不需要下载、安装,但需要导入,BC 错误。

9.3.2 模块的导入

模块的导入语法为:import + 模块名
import [ ɪmˈpɔːt]:输入,导入。
注意:import 与模块名之间有个空格。

在这里插入图片描述

# 模块的导入语法
# import 模块名
import os

一个模块就是一个写好了代码的Py 文件,里面有类、函数、变量。
我们通常需要通过调用模块中的类、函数、变量来实现某些特定的功能:

调用模块中的某一个类、函数或变量的语法如下:
1)调用模块下的类:模块名.类名(),如 csv.DictReader()
2)调用模块下的函数:模块名.函数名(),如 os.mkdir()
3)调用模块下的变量:模块名.变量名,如 os.name

在这里插入图片描述

9.3.3 常用的os 模块命令

注意:os 模块是Python的内置模块,使用前不需要安装,但需要import 导入。

1. os.system(‘calc’)打开计算器
# 导入模块:import 模块名  
import os 
# 调用模块下的函数:模块名.函数名() 
# cala:打开计算器
os.system('calc')

运行上述代码,电脑会自动打开计算器。

2. os.system(“notepad”)打开记事本
# 导入模块:import 模块名  
import os 
# 调用模块下的函数:模块名.函数名() 
# notepad 打开记事本
os.system("notepad") 

运行上述代码,电脑会自动打开记事本。

3. os.startfile(path)打开可执行文件
# import 模块名  
import os 
# 调用模块下的函数:模块名.函数名() 
# startfile 打开可执行文件
# file 为微信程序的绝对路径
file = "D:\\软件安装包\\Tencent\\WeChat\\WeChat.exe"
os.startfile(file)

运行上述代码,实现了用命令让计算机打开微信小程序的操作。
path:为执行文件的绝对路径。

获取微信绝对路径的方法:
1.鼠标右键点击微信-【属性】-【打开文件位置】;
2.按住【shift】+【复制文件地址】;
3.改写路径:因为转义字符的存在,将单反斜杠全部改写为双反斜杠。

4. os.getcwd( )返回当前文件的目录

getcwd全称应该是’get current work directory’。
意思是’获取当前工作目录’。
current [ˈkʌrənt]:当前的。
directory[dəˈrektəri]:目录。

# import 模块名 
import os 
# 模块名.函数名() 
# getcwd 返回当前文件的目录
os.getcwd( )

【终端输出】

'c:\\Users\\xiaoyuzhou\\Desktop\\Python笔记新
\\第9章 文件读写\\9.3 os模块'

运行上述代码,得到的是我当前正在编辑的文件的工作目录。

5. os.listdir(path)返回指定文件夹下,文件或文件夹名字的列表
# import 模块名  
import os 
# 模块名.函数名() 
#listdir:返回指定文件夹下,文件或文件夹名字的列表
print(type(os.listdir( )))
os.listdir( )

【终端输出】

[ '9.3os模块 - 副本.ipynb', 
'9.3os模块.ipynb', '9.4.ipynb']

path 指的是指定文件夹的路径。
执行listdir 函数后得到的数据是一个列表。
列表里存储的是指定文件夹里的文件夹和文档名称。
上述代码中listdir 函数的参数为空,得到的是当前工作文件夹里的文件目录。
在相对路径和绝对路径章节,我们讲过.表示当前文件夹,且.可以省略不写。
因此括号参数为.时得到的文件目录和没有参数是一样的。

# import 模块名  导入模块
import os 
# 模块名.函数名() 
# getcwd 返回当前文件的目录
os.listdir(".")

【终端输出】

['9.3os模块 - 副本.ipynb', '9.3os模块.ipynb', 
'9.4.ipynb']

函数中的参数有点和没点是一样的结果。

# import 模块名  导入模块
import os 
# 模块名.函数名() 调用模块下的函数
# getcwd 返回当前文件的目录
os.listdir("..")

【终端输出】

['9.1 相对路径和绝对路径', '9.2 库与模块', 
'9.3 os模块', 'img']

‘c:\Users\xiaoyuzhou\Desktop\Python笔记新\第9章 文件读写\9.3 os模块’
..表示上一级目录。
当listdir 函数的参数为··时,得到的是上1级文件夹的目录。
即【第9章 文件读写】的目录。

# import 模块名  
import os 
# 模块名.函数名() 
os.listdir("..\\..")

【终端输出】

['第1章_第3章','第4章 Python基础知识','第5章 运算符','第6章 程序流程控制','第7章 自定义函数','第8章 类与对象','第9章 文件读写']

‘c:\Users\xiaoyuzhou\Desktop\Python笔记新\第9章 文件读写\9.3 os模块’
..表示上1级目录。
2个..表示上2级。
当listdir 函数的参数为..\\..时,得到的是上2级文件夹的目录。
即【Python笔记新】的目录。

6. os.mkdir():创建新的目录
# import 模块名  
import os 
# 模块名.函数名() 
os.mkdir("新建文件夹")

mkdir 函数的作用是创建新的目录,即新建文件夹或文档。
当参数为【新建文件夹】,表示在当前文件夹下新建了一个名为【新建文件夹】的文件。

7. os.mkdirs():创建多级目录
# import 模块名  
import os 
# 模块名.函数名() 
os.makedirs("a/b/c")

运行代码后电脑在当前文件夹下新建了一个a文件夹,a文件夹里有b文件夹,b文件夹里有c文件夹。

8 os.rmdir(path):删除目录
# import 模块名  
import os 
# 模块名.函数名() 
os.rmdir("新建文件夹")

运行上述代码,电脑将刚才新建的名为【新建文件夹】的文件夹进行了删除操作。

9 os.removedirs(path):删除多级目录
# import 模块名  
import os 
# 模块名.函数名() 
os.removedirs("a/b/c")

运行上述代码,电脑将刚才新建的名为a文件夹进行了删除操作。

10 os.chdir(path):改变当前的工作目录
# import 模块名  
import os 
# 模块名.函数名() 
print(os.getcwd( ))
os.chdir('D:\\工作')
print(os.getcwd( ))

【终端输出】

 C:\Users\xiaoyuzhou\Desktop\Python笔记新\第9章 文件读写\9.3 os模块D:\工作

第1个print(os.getcwd( ))获取的是当前的工作文件夹。
os.chdir('D:\\工作')是 将当前的工作文件夹改写成D:\\工作
第2个print(os.getcwd( ))获取的是改写后的工作文件夹。

11 from 模块名 import 类名/函数名/变量名

调用模块下的函数/类/变量,还可以用另一种语法来写:from 模块名 import 类名/函数名/变量名。
from os import listdir 意思是 “从 os 模块导入 listdir() 函数”

课堂练习
电脑D盘中有个名为【工作】的文件夹,里面有一个名为【各班级成绩】的文件夹,文件夹里有3个Excel文件夹,名称分别为1班成绩、2班成绩、3班成绩。
请你编写一段代码,输出3个Excel的文件名称。

方法1:导入和调用函数分开

# 导入模块:import 模块名
import os
#调用函数:模块名.函数名()
#listdir()函数查看文件名称
os.listdir("D:\\工作\\各班级成绩")

【终端输出】

['1班成绩表.xlsx', '2班成绩表.xlsx', '3班成绩表.xlsx']

方法2:导入和调用一气呵成

#从 os 模块导入 listdir() 函数
from os import listdir
# 设置一个变量存储文件路径
file_name = ("D:\\工作\\各班级成绩")
listdir(file_name )

【终端输出】

['1班成绩表.xlsx', '2班成绩表.xlsx', '3班成绩表.xlsx']

9.3.4 总结

在这里插入图片描述