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") #输出每一级目录的元祖
题外话
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
若有侵权,请联系删除