任何想法为什么这不会在 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" !
任何想法为什么这不会在 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" !
加入是一个方便的功能,它不是太智能。例如,它不验证路径的存在等。它只是遵循一些正式的规则。
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
如果任何组件是绝对路径,则所有先前的组件(在 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
也许它不支持这个,你可以正常使用它:
print myPath + myPath2 + myFile