Python的文件路径问题和相关方法

您所在的位置:网站首页 Python的路径问题 Python的文件路径问题和相关方法

Python的文件路径问题和相关方法

2023-03-15 23:33| 来源: 网络整理| 查看: 265

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 7 天,点击查看活动详情

概念介绍:

绝对路径: 绝对路径是指从盘符开始的文件全路径,一般表现为“/”。如“C:/Users/TheUser/Desktop/temp.txt”(Windows)、“/Users/TheUser/Desktop/temp.txt”(Windows)、“/home/TheUser/temp.txt”(Linux)。

相对路径: 相对路径是指从本文件开始算起的问价路径,总体长度相较绝对路径一般要短,一般表现为“./”或“../”——其中,“./”表示当前路径,“../”表示上级路径。如当前文件是“C:/Users/TheUser/Desktop/demo.py”,“./a.jpg”就表示“C:/Users/TheUser/Desktop/a.jpg”,“./img/b.png”就表示“C:/Users/TheUser/Desktop/img/b.png”,“../c.txt”就表示“C:/Users/TheUser/c.txt”“../../d.log”就表示“C:/Users/d.log”

r字符串(r-String)

如r'C:\Users\TheUser',r字符串会自动忽略字符串中的转义字符,常用于表示路径。

相关库

os和pathlib都是Python的标准库,常用于路径操作。这是它们的官方文档:os.path --- 常用路径操作 — Python 3.11.2 文档、pathlib --- 面向对象的文件系统路径 — Python 3.11.2 文档。

本文主要介绍os、os.path的常用路径操作方法。

指令 os.system

可以直接使用os.system执行系统级的Shell指令,它的返回值只有0或1,对应指令执行失败或成功,如:os.system('echo 1')就是打印1,当然也可以用它搭配相应的命令操作文件及路径。

os.popen

os.popen和os.system类似,但会新开一个管道执行命令,并返回对应指令返回值。

新建 os.path.exists和os.path.lexists

os.path.exists和os.path.lexists几乎一样,它们的主要必填参数都只有一个path,作用都是检查文件是否存在,返回值为True或False。使用如 os.path.exists('C:\Users\TheUser\Desktop\tmp.txt')。而它们的区别是如果要检测的对象是个已失效的链接,os.path.exists会返回False,而os.path.lexists仍会返回True。

os.mkdir

它的常用用法:os.mkdir(path),其中path为想要添加的文件夹路径。 如:os.mkdir('C:/Users/TheUser/Desktop/fd')就是在用户名为TheUser的桌面上创建一个fd文件夹。 它只能创建单层目录,如果需要创建多层目录的话则需要os.makedirs。 注意:如果创建目录之前指定路径已经有对应文件夹了,那么其会触发异常。

os.makedirs

它的常用用法:os.makedirs(path),其中path为想要添加的文件夹路径,与os.mkdir不同的是,os.makedirs可以通过递归新建 如:os.mkdir('C:/Users/TheUser/Desktop/fd')就是在用户名为TheUser的桌面上创建一个fd文件夹。 它只能创建单层目录,如果需要创建多层目录的话则需要os.makedirs。 注意:和os.mkdir类似,如果创建目录之前指定路径已经有对应文件夹了,那么其会触发异常。

os.remove(path)

它的常用用法:os.makedirs(path),其中path为想要添加的文件夹路径,与os.mkdir不同的是 如:os.mkdir('C:/Users/TheUser/Desktop/fd')就是在用户名为TheUser的桌面上创建一个fd文件夹。

rmdir(path)

删除单层目录,如该层目录非空则抛出异常

removedirs(path)

递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常

split(path)

分割文件名与路径,返回(f_path,f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在

splitext(path)

分离文件名与扩展名,返回(f_name,f_extension)元组

rename(old,new)

将文件old重命名为new

basename(path)

去掉目录路径,单独返回文件名

dirname(path)

去掉文件名,单独返回目录路径

join(path1[,path2[,…]])

将path1,path2各部分组合成一个路径名

isdir(path) | 判断指定路径是否存在且是一个目录 |

| isfile(path) | 判断指定路径是否存在且是一个文件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3