为什么这不会在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”!
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分:-1)
也许它不支持这个,你可以正常使用它:
print myPath + myPath2 + myFile