Python编程| 目录操作

Py内置了os模块及其子模块os.path用于对目录或文件进行操作。  

导入os模块后,也可使用其子模块os.path。
import os``   ``print(os.name)    #获取操作系统类型,nt——win,posix——Linux、UNIX或Mac``   ``print(os.linesep)  #获取当前操作系统上的换行符``   ``print(os.sep)    #获取当前操作系统所使用的路径分隔符

os模块与目录相关的函数

os.path模块与目录相关的函数

相对路径

在当前工作目录下,有一个子目录src,且在该子目录下保存着文件mr.txt  
with open("src/mr.txt") as file:`  `print(file.read())
在Py中,指定文件路径时需要对路径分隔符“\\”进行转义,即将路径中的“\\”替换为“\\\\”。例如相对路径“src\\mr.txt”需用“src\\\\mr.txt”代替。另外,也可将路径分隔符“\\”采用“/”代替。  

也可在表示路径的字符串前面加上字母r(或R),该字符串将原样输出,路径中的分隔符就不需要转义了。  
with open(r"src\mr.txt") as file:`  `print(file.read())

绝对路径

os.path模块提供abspath()函数获取一个文件的绝对路径。

os.path.abspath(path)

path为要获取的绝对路径的相对路径,可以是文件,也可以是目录。

import os``   ``#获取相对路径"demo\mr.txt"的绝对路径``print(os.path.abspath(r"demo\mr.txt"))

拼接路径

os.path模块的join()函数实现将两个或多个路径拼接到一起组成一个新的路径。

os.path.join(path1[,path2[,......]])

如要拼接的路径中没有一个绝对路径,最后拼接出来的将是一个相对路径。

import os``   ``print(os.path.join("E:\program\Python\Code","demo\message.txt"))

如要拼接的路径中存在多个绝对路径,以从左到右最后一次出现的为准,且该路径之前的参数都将被忽略。

import os``   ``print(os.path.join("E:\\code","E:\\python\\mr","Code","C:\\","demo"))

判断目录是否存在exists()

os.path.exists(path)

path可采用绝对或相对目录

import os``   ``print(os.path.exists("C:\\Windows"))      #判断目录是否存在``   ``print(os.path.exists("C:\\Windows\\py.exe"))  #判断文件是否存在

创建目录

**创建一级目录**是指一次只能创建一级目录,用os模块的mkdir()实现,通过该函数只能创建指定路径中的最后一级目录,如该目录的上一级不存在,则抛出FileNotFoundError异常。  
os.mkdir(path,mode=0o777)

path:指定要创建的目录,可用绝对或相对路径。

mode:用于指定数值模式,默认值为0777。

import os``   ``os.mkdir("E:\\ITPj\\demo2")  #创建目录
import os``   ``path = ("E:\\ITPj\\demo2")    #指定要创建的目录``if not os.path.exists(path):  #判断目录是否存在`  `os.makedirs(path)      #创建目录`  `print("目录创建成功!")``else:`  `print("该目录已经存在!")

创建多级目录

os模块的makedirs()函数,该函数采用递归的方式创建目录。

os.makedirs(name,mode=0o777)

name:指定要创建的目录,可用绝对目录或相对目录。

import os``   ``os.makedirs("E:\\ITPj\\demo2\\test\\dir\\mr")

删除目录

os模块的rmdir()函数,只有当要删除的目录为空时才起作用。

os.rmdir(path)
import os``   ``os.rmdir("E:\\ITPj\\demo2\\test\\dir\\mr")    #删除目录mr

要删除非空目录,需shutil的rmtree()函数实现

import shutil``   ``shutil.rmtree("E:\\ITPj\\demo2\\test")    #删除不为空的test目录

遍历目录walk()

os.walk(top[,topdown][,onerror][,followlinks])
  • top:指定要遍历内容的根目录

  • topdown:可选参数,指定遍历的顺序。如果值为True,表示自上而下遍历(先遍根目录);如值为False,表示自下而上遍历(先遍历最后一级子目录)。默认值为True。

  • onerror:可选参数,指定错误处理方式,默认为忽略。如不想忽略,也可指定一个错误处理函数。通常情况下采用默认设置。

  • followlinks:可选参数,默认情况下,walk()函数不会向下转换成解析到目录的符号链接。将该参数设置为True,表示用于指定在支持的系统上访问由符号链接指向的目录。

返回值:返回一个包括3个元素(dirpath、dirnames和filenames)的元祖生成器对象。dirpath表示当前遍历的路径,是一个字符串;dirnames表示当前路径下包含的子目录,是一个列表;filenames表示当前路径下包含的文件,也是一个列表。

walk()函数只在UNIX和Windows中有效。

import os``   ``#遍历E:\ITPj\demo 目录``   ``tuples = os.walk("E:\\ITPj\\demo")``   ``for tuple1 in tuples:    #通过for循环输出遍历结果`  `print(tuple1,"\n")    #输出每一级目录的元祖

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值