Python os.path.join
已described as "mostly pointless",因为它会在包含前导斜杠的参数之前丢弃任何参数。暂且不谈这是故意和记录的行为,是否有一个现成的功能或代码模式不会像这样丢弃?
鉴于HOMEPATH=\users\myname
,以下内容将丢弃路径的开头
print os.path.join('C:\one', os.environ.get("HOMEPATH"), 'three')
结果:
\Users\myname\three
期望的:
C:\one\Users\myname\three
被这几次咬了之后,我现在非常好,当我写完这篇文章的时候注意到一个领先的斜线,但是当你不知道传入的字符串看起来像什么时,如何在这个例子中?
答案 0 :(得分:7)
也许os.environ.get("HOMEPATH").lstrip(os.path.sep)
...编写自己的join
版本会在每个参数(或第二个及后续版本)上执行此操作,这将是微不足道的。
答案 1 :(得分:3)
只需删除斜杠
path = os.environ.get("HOMEPATH").lstrip(os.path.sep)
os.path.join('C:\one', path, 'three')