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()方法将扩展使用~来代表当前用户的主目录的路径名。
这在任何用户有主目录的平台上都适用,包括Linux、MacOS和Windows。返回的路径没有尾部斜线,但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()会自动将正斜杠("/")加入路径名中。