Python 从入门到实战29(目录的操作)

        我们的目标是:通过这一套资料学习下来,通过熟练掌握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("文件不存在")

第一次看到删除成功了,

第二次运行提示:文件不存在

今天先写学习到这里了,每天进步一点点。明天也要加油啊!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立黄昏粥可温

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值