9.3 Python的 os 模块

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( )

【终端输出】

<class 'list'>





[ '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 总结

在这里插入图片描述

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值