文件路径操作
项目除了程序文件,还可能包含一些资源文件,程序文件与资源文件相互协调,方可实现完整程序。但若程序中使用了错误的资源路径,项目可能无法正常运行,甚至可能崩溃,所以文件路径是开发程序时需要关注的问题。下面将对Python中与路径相关的知识进行讲解。
1.相对路径与绝对路径
文件相对路径指这个文件夹所在的路径与其它文件(或文件夹)的路径关系,绝对路径指盘符开始到当前位置的路径。os模块提供了用于检测目标路径是否是绝对路径的isabs()函数和将相对路径规范化为绝对路径的abspath()函数,下面分别讲解这两个函数。
- isabs()函数
当目标路径为绝对路径时,isabs()函数会返回True,否则返回Faslse。下面使用isabs()函数判断提供的路径是否为绝对路径。示例代码如下。
import os
print(os.path.isabs("new_file.txt"))
print(os.path.isabs("D:\Python项目\new_file.txt"))
运行代码,结果如下所示:
Fals
True
- abspath()函数
当目标路径为相对路径时,使用abspath()函数用于将当前路径规范化为绝对路径,示例代码如下:
import os
print(os.path.abspath("new_file.txt"))
运行代码,结果如下所示:
D:\Python项目\new_file.txt
2.获取当前路径
当前路径即文件、程序或目录当前所处的路径。os模块中的getcwd()函数用于获取当前路径,其使用方法如下:
import os
current_path = os.getcwd()
print(current_path)
上述代码首先通过os模块中的getcwd()函数获取到当前路径,然后赋值给变量current_path,最后使用print()函数将当前路径输出。
运行代码,结果如下所示:
D:\Python项目
3.检测路径的有效性
os模块中的exists()函数用于判断路径是否存在,如果当前路径存在,exitsts()函数返回True,否则返回False。exists()函数的使用方法如下:
import os
current_path = "D:\Python项目"
current_path_file = "D:\Python项目\new_file.txt"
print(os.path.exists(current_path))
print(os.path.exists(current_path_file))
上述代码将两个路径分别赋值给变量current_path和current_path_file,然后使用exists()函数判断提供的路径是否存在。
运行代码,结果如下所示。
True
True
4.路径的拼接
os.path模块中的join()函数用于拼接路径,其语法格式如下:
os.path.join(path1[,path2[,…]])
上述格式中,参数path1、path2表示要拼接的路径。
使用join()函数对路径“Python项目”与“Python_path”进行拼接,示例代码如下:
import os
path_one = 'Python项目'
path_two = 'python_path'
# Windows系统下使用“\”分隔路径
splici_path = os.path.join(path_one, path_two)
print(splici_path)
上述代码将第一个路径“Python项目”赋值给path_one,将第二个路径“python_path”赋值给path_two,然后通过join()函数将这两个路径进行拼接。
运行代码,结果如下所示:
Python项目\python_path
如果最后一个路径为空,则生成的路径将以一个“\”结尾,示例代码如下:
import os
path_one = 'D:\Python项目'
path_two = ''
splicing_path = os.path.join(path_one, path_two)
print(splicing_path)
运行代码,结果如下所示:
D:\Python项目\