查看目录
==目标:==了解查看目录的使用。
Python中的os模块包含有操作系统所具备的功能,如查看路径、创建目录、显示文件列表等。
os模块是Python标准库,可直接导入使用:
# 导入os模块 import os
在Python中,os模块的常用函数分为两类:
(a)通过os.path调用的函数
(b)通过os直接调用的函数
在Python的os模块中,通过os.path常用函数:
| 函数名 | 含义 |
|---|---|
| exists(pathname) | 用来检验给出的路径是否存在。 |
| isfile(pathname) | 用来检验给出的路径是否是一个文件。 |
| isdir(pathname) | 用来检验给出的路径是否是一个目录。 |
| abspath(pathname) | 获得绝对路径。 |
| join(pathname,name) | 连接目录与文件名或目录。 |
| basename(pathname) | 返回单独的文件名。 |
| dirname(pathname) | 返回文件路径。 |
说明:
上述常用函数需要使用os.path来进行调用。
例如,使用os模块来完成:
(1)在某目录下手动新建day05/file目录与day05/file/hello.txt文件;
(2)判断file/hello.txt是否存在、是否是文件、是否是目录、获取绝对路径名、获取单独的文件名;
(3)执行程序,观察效果。
# 定义路径 # E:\PythonSource\Source202306_sz\pycode1\day05\data\file\hello.txt # path1 = "E:\PythonSource\Source202306_sz\pycode1\day05\data\file\hello.txt" # 可能会出错 # path2 = "E:\\PythonSource\\Source202306_sz\\pycode1\\day05\\data\\file\\hello.txt" # path3 = "E:/PythonSource/Source202306_sz/pycode1/day05/data/file/hello.txt" path4 = r"E:\PythonSource\Source202306_sz\pycode1\day05\data\file\hello.txt" # 正则 # 推荐 # path3 = "E:/PythonSource/Source202306_sz/pycode1/day05/data/file/hello.txt" # 推荐
import os # 定义变量 path = "./data/file/hello.txt" # 是否存在 # print(os.path.exists(path)) # 是否是文件 # print(os.path.isfile(path)) # 目录 # print(os.path.isdir(path)) # False # 绝对路径 # print(os.path.abspath(path)) # 单独文件名 print(os.path.basename(path))
==总结:==
(1)在Python中操作目录时,需要使用到os模块;
(2)注意:当要检查某目录是否存在时,可以使用()方法。==A、exists()==;B、isfile()。
目录的具体操作
==目标:==了解操作目录的方式有哪些?
在Python的os模块中,可直接通过os调用的常用函数:
| 函数名 | 含义 |
|---|---|
| getcwd() | 获得当前工作目录,即当前Python脚本工作的目录路径。 |
| system(name) | 运行shell命令。 |
| listdir(path) | 返回指定目录下的所有文件和目录名,即获取文件或目录列表。 |
| mkdir(path) | 创建单个目录。 |
| makedirs(path) | 创建多级目录。 |
| remove(path) | 删除一个文件。 |
| rmdir(path) | 删除一个目录。 |
| rename(old, new) | 重命名文件。 |
说明:
上述常用函数可直接使用os来进行调用。
例如,使用os模块来完成:
(1)获取当前工作目录;
(2)获取day05/file下的文件或目录列表信息;
(3)思考:若要在file下新建hello/world/python目录,该怎么做呢?
import os
# 1.获取目录
# path = os.getcwd()
# print(path)
# 2.获取文件或列表信息
# path_name = "./data/file"
# dir_lists = os.listdir(path_name)
# print(dir_lists)
# 3.新建目录
# 问题: 当目录不存在时,才需要创建; 已存在, 则不创建
new_path_name = "./data/file/hello/world/python"
if not os.path.exists(new_path_name): # 逻辑# 创建os.makedirs(new_path_name)print("已创建成功!!!")
==总结:==
(1)当要遍历及获取某目录下的所有文件信息时,可以使用()方法;==A、listdir()==;B、rmdir();
(2)注意:当要涉及到操作目录,比如创建目录、检查目录是否存在等,就需要直接使用os模块。