我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们讨论了文件的打开、创建、关闭、读取的相关知识。今天我们将学习一下目录的相关操作知识。
目录也称为文件夹,用于分层保存文件如下:可以在工程-New-Directory,新建文件夹
1、os、os.path模块
pyhton 没有提供直接操作目录和文件的函数或者对象,需要使用内置的os及其子模块os.path来实现。
1)os 模块
os.name #获取操作系统的类型,windows输出nt
os.linesep #获取操作系统的换行符
os.sep #获取操作系统使用路径的分隔符
os 模块提供的与目录相关的函数:
函数 | 说明 |
os.getcwd() | 返回当前工作目录的字符串表示 |
os.listdir(path) | 返回指定目录下的文件和子目录列表 |
os.mkdir(path) | 创建一个新目录 |
os.rmdir(path) | 删除一个空目录 |
os.path.exists(path) | 检查路径是否存在 |
os.path.isdir(path) | 检查路径是否是一个目录 |
os.path.isfile(path) | 检查路径是否是一个文件 |
os.path.join(path, *paths) | 将多个路径组件智能地连接起来 |
2)os.path 模块
os.path 模块提供的与目录相关的函数:
exists(path) | 用于判断目录或者文件是否存在,存在就返回True,否在False |
isdir(path) | 用于判断是否是有效路径 |
os.path.getsize(path) | 返回指定文件的大小(以字节为单位) |
os.path.abspath(path) | 返回指定文件的绝对路径 |
os.path.splitext(path) | 将路径拆分为文件名和扩展名 |
os.path.basename(path) | 从路径中提取文件名 |
os.path.dirname(path) | 从一个路径中提取文件路径,不包括文件名 |
2、获取相对路径
首先,我们看一下当前目录,相对路径都是以当前目录来参考的。
import os #导入模块
def main():
print(os.getcwd())#输出当前目录
输出结果:D:\dewi\project2024\myListPractice\pythonProject1
如当前目录下有test_data.txt,如下图:
我们就可以通过相对路径打开它:
def main():
print(os.getcwd())#输出当前目录
with open(r"./test_data.txt","r") as file_data:
print(file_data.read())
输出结果:
xiaomi,123456
xiaohua,135790
xiaohui,246810
3、获取绝对路径
绝对路径也就是使用文件或者指定文件的实际路径。
举例:
import os #导入模块
def main():
print(os.path.abspath("test_data.txt"))#获取文件或者目录的绝对路径
输出结果:D:\dewi\project2024\myListPractice\pythonProject1\test_data.txt
4、拼接路径
若是想将两个或者多个路径拼接到一起组成一个新的路径,可以使用os.path 模块提供的join()函数来实现。
使用方法:os.path.join(path1,path2,…)
import os #导入模块
def main():
path1 = r'D:\dewi\project2024\myListPractice'
path2 = r'pythonProject1\test_data.txt'
print(os.path.join(path1,path2))#拼接路径
输出结果:D:\dewi\project2024\myListPractice\pythonProject1\test_data.txt
5、判断目录是否存在
判断给定的目录是否存在,可以使用os.path模块提供的exists()函数来完成,
语法参考: os.path.exists(path)
path----是需要判断的目录
返回值 ----如目录存在返回为True,否在返回为False
举例说明:
import os #导入模块
def main():
state = os.path.exists('D:\dewi\project2024\myListPractice') #是否存在
print("目录是否存在:",state)
输出:True
也可以判断文件是否存在:
import os #导入模块
def main():
state = os.path.exists('test_data.txt')
print("文件是否存在:",state)
输出:True
6、创建目录
python 中os模块提供了两个创建目录的函数,一个是创建一级目录,另一个是创建多级目录。
1)创建一级目录
使用函数:os.mkdir(path,mode=0o777)
参数说明:
path ----用于指定要创建的目录,可以是绝对路径,也可以是相对路径
mode----用于指定数值模式,默认值0o777,该参数在非UNIX系统上无效或者被忽略
举例说明:
import os #导入模块
def main():
#当前路径新建文件夹test_data
if not os.path.exists("test_data"): #判断文件是否存在
os.mkdir("test_data") #文件不存在就新建
else:
print("文件已存在")
执行第一次就增加了文件:
再次执行:
提示:文件已存在。
2)创建多级目录
使用方法:os.makedirs(name,mode=0o777)
参数说明:
name -----用于指定要创建的目录,可以是绝对路径,也可以是相对路径
mode---用于指定数值模式,默认值0o777,该参数在非UNIX系统上无效或者被忽略
举例说明:
os.makedirs(r"prc/test_prc") #当前目录新建
7、删除目录
在Python中,可以使用os模块中的rmdir()和removedirs()方法来删除空目录,或者使用shutil模块的rmtree()方法来删除非空目录。
以下是使用os模块删除目录的例子:
import os #导入模块
def main():
if os.path.exists(r"prc/test_prc"): #判断是否存在
os.rmdir(r"prc/test_prc")
else:
print("文件不存在")
第一次看到删除成功了,
第二次运行提示:文件不存在
今天先写学习到这里了,每天进步一点点。明天也要加油啊!