Python os.path.join:如何在Python中连接路径

854 阅读3分钟

Python中的OS模块在路径名上实现了一些有价值的功能。os.path 模块总是适合于 Python 运行的操作系统的路径模块,因此可用于本地路径。但是什么是文件路径,它由什么组成?

文件路径里有什么?

文件路径由一连串的文件和文件夹名称组成。这一连串的名字会把你带到计算机操作系统(OS)上的一个特定的地方。

path = "/Users/krunal/Desktop/code/"

上面的路径把我们带到了代码 文件夹或目录。

要动态地获得路径而不使用硬编码,可以使用os.path.join()方法。os.path.join()的想法是使你的程序跨平台。让我们来看看这个方法的细节。

os.path.join

os.path.join()是一个内置的Python方法,可以有效地连接一个或多个路径组件。os.path.join()函数将几个路径组件连接起来,每个非空的部分后面恰好有一个目录分隔符('/'),减去最后一个路径组件。

如果要连接的最后一个路径段是空的,那么目录分隔符(**'/')**会被放在最后。

os.path.join()方法经常与os方法如os.walk()一起使用,以创建一个文件或文件夹的最终路径。os.path.join()会自动将任何需要的正斜杠插入文件路径名中。

语法

os.path.join(path, *paths)

参数

path:一个代表文件系统路径的类似路径的对象。

*path:一个类似于路径的对象,代表文件系统路径。它表示要连接的路径组件。

返回值

os.path.join()方法返回一个字符串,表示连接的路径组件。

例子

编写以下代码,演示path.join()方法:

import os

path = "/Users/krunal/Desktop/code/"

print(os.path.join(path, "pyt", "database", "app.py"))

输出结果

/Users/krunal/Desktop/code/pyt/database/app.py

你可以从输出中看到,os.path.join()函数将路径名称合并为一个完整的路径。这意味着你可以把一个路径的多个片段连接成一个,而不是手工硬编码每个路径名

要获得Python中的当前工作目录,使用下面的文件路径名:

import os

cwd = os.getcwd()

print(cwd)

输出

/Users/krunal/Desktop/code/pyt/database

os.path.expanduser()方法将扩展使用~来代表当前用户的主目录的路径名。

这在任何用户有主目录的平台上都适用,包括LinuxMacOSWindows。返回的路径没有尾部斜线,但os.path.join()方法并不关心。

我们不要使用硬编码的路径,让我们使用Python函数来打印完整的路径,直到所需的文件名。

import os

cwd = os.getcwd()

app = os.path.join(cwd, "app.py")

print(app)

输出

/Users/krunal/Desktop/code/pyt/database/app.py

cwd 变量保存了相对于我们当前工作目录的数据库文件夹的文件路径,然后我们用app.py的文件名连接。

总结

os.path.join()方法结合了路径名中的组件,以创建一个完整的路径名。os.path.join()方法使合并两个或多个路径名组件变得很容易。当需要时,os.path.join()会自动将正斜杠("/")加入路径名中。

参见

Python os.listdir()

Python os.system()

Python os.path.commonprefix()

Python os.path.commonpath()

Python os.path.splitext()