3

任何想法为什么这不会在 Python 2.6 Win 中正确加入?

import os

myPath = "\\\\192.168.1.50\\Shared"
myPath2 = "\\Folder2"
myFile = "1.txt"

print os.path.join(myPath, myPath2, myFile)

结果:

\Folder2\1.txt

我期待结果是 "\\192.168.1.50\Shared\Folder2\1.txt" !

4

3 回答 3

1

加入是一个方便的功能,它不是太智能。例如,它不验证路径的存在等。它只是遵循一些正式的规则。

myPath2根据您的问题,请删除定义中的多余斜线。

import os

myPath = "\\\\192.168.1.50\\Shared"
myPath2 = "Folder2"
myFile = "1.txt"

print os.path.join(myPath, myPath2, myFile)

\\192.168.1.50\Shared\Folder2\1.txt

普通路径也会有同样的问题:

import os

myPath = "C:\\Shared"
myPath2 = "\\Folder2"
myFile = "1.txt"

print os.path.join(myPath, myPath2, myFile)

\Folder2\1.txt

于 2012-08-12T14:52:15.250 回答
1

如果任何组件是绝对路径,则所有先前的组件(在 Windows 上,包括先前的驱动器号,如果有的话)都将被丢弃,并继续加入。

我需要从 myPath2 的开头删除斜杠,否则它将被树化为绝对路径,而 myPath 将被忽略!

import os

myPath = "\\\\192.168.1.50\\Shared"
myPath2 = "Folder2"
myFile = "1.txt"

print os.path.join(myPath, myPath2, myFile)

结果:

\\192.168.1.50\Shared\Folder2\1.txt
于 2012-08-12T14:53:25.847 回答
-1

也许它不支持这个,你可以正常使用它:

print myPath + myPath2 + myFile
于 2012-08-12T14:47:01.487 回答