Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python os.path.join与启动路径上的os.path.sep正常连接等。?_Python - Fatal编程技术网

Python os.path.join与启动路径上的os.path.sep正常连接等。?

Python os.path.join与启动路径上的os.path.sep正常连接等。?,python,Python,如果没有手鼓的伴奏,怎么能正常地连接路径的各个部分呢?特别指出,绝对路径会导致前面的路径被丢弃: 如果任何组件是绝对路径,则Windows上以前的所有组件(包括以前的驱动器号,如果有)都将被丢弃,并继续加入 您正在连接以/开头的多个路径。从除第一个路径元素以外的任何元素中删除初始路径分隔符: if __name__ == "__main__": path_one = "/hello/world" path_two = "/my/little/friend" path_tr

如果没有手鼓的伴奏,怎么能正常地连接路径的各个部分呢?

特别指出,绝对路径会导致前面的路径被丢弃:

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

您正在连接以/开头的多个路径。从除第一个路径元素以外的任何元素中删除初始路径分隔符:

if __name__ == "__main__":
    path_one = "/hello/world"
    path_two = "/my/little/friend"
    path_tree = 3

    print os.path.join(path_one, path_two, str(path_tree))
    # /my/little/friend\3 , but i want get this /hello/world/my/little/friend/3
    print os.path.join(path_two, str(path_tree))
    # /my/little/friend\3 , but i want get this /my/little/friend/3

    # ok, go

    print os.path.join(os.path.abspath(path_one), os.path.abspath(path_two), str(path_tree))
    # C:\my\little\friend\3 , but i want get C:\hello\world\my\little\friend\3
    print os.path.join(os.path.abspath(path_two), str(path_tree))
    # C:\my\little\friend\3 , all right!
    print os.path.join(os.path.abspath(path_two), str(path_tree), '/', '232\\')
    # /232\ , but i want C:\my\little\friend\3\232\ 

您正在从文件系统的根连接两个绝对路径,即从/开始。当你这样做时,第二个优先;怎么可能不呢?解决方案:不要这样做

>>> import os.path
>>> os.path.join('/foo/bar', '/spam/eggs')
'/spam/eggs'
>>> os.path.join('/foo/bar', 'spam/eggs')
'/foo/bar/spam/eggs'