Python os.path.join()在Windows中处理绝对路径的问题
我刚开始学习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"\/")
。