Python os.path.join()在Windows中处理绝对路径的问题

0 投票
1 回答
713 浏览
提问于 2025-04-18 14:47

我刚开始学习Python,想要访问一个文件,它的完整路径是这样的:

'X:/01 File Folder/MorePath/Data/Test/myfile.txt'

每次我试着用 os.path.join 来拼接这个完整的字符串时,它总是把驱动器字母和第二个路径字符串之间的部分给切掉了,变成这样:

import os
basePath = 'X:/01 File Folder/MorePath'
restofPath = '/Data/Test/myfile.txt'
fullPath = os.path.join(basePath,restofPath)

结果给我的是:

'X:/Data/Test/myfile.txt'

作为 fullPath 的名称。

有没有人能告诉我我哪里做错了?这和基础路径名称开头的数字有关系吗?

1 个回答

3

在你的 restofPath 开头的 / 表示“从根目录开始”。所以 os.path.join() 会帮你自动处理这个问题。

如果你不想这样做,可以把你的 restofPath 写成相对路径,比如 Data/Test/myfile.txt,而不是绝对路径。

如果你的 restofPath 是从程序外部获取的(比如用户输入、配置文件等),而你希望无论用户是否在路径前加了斜杠,都把它当作相对路径来处理,你可以使用 restofPath.lstrip(r"\/")

撰写回答