学科分类
目录
基础

文件路径操作

项目除了程序文件,还可能包含一些资源文件,程序文件与资源文件相互协调,方可实现完整程序。但若程序中使用了错误的资源路径,项目可能无法正常运行,甚至可能崩溃,所以文件路径是开发程序时需要关注的问题。下面将对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项目\
点击此处
隐藏目录