0

我正在尝试创建一个函数,它将接收路径列表(来自参数列表),从 os.path 执行几个函数(expandvars、expanduser、normpath),最后加入所有这些路径值。到目前为止,它看起来像这样:

def normjoin(*p):
    """ Uses os.path functions to normalize and join paths
       *path - all the paths you want to join
       return: normalized and joined string
    """
    b_results = []
    for b in p:
        b_results.append(os.path.normpath(os.path.expandvars(os.path.expanduser(b))))
    return os.path.join(b_results)

这就是它在实践中的样子:

sharedir = normjoin("~", "Dropbox/SpideroakShared")

我打算在win和linux系统上都使用它。

返回值将看起来像这样' "C:\\Users\\tgoldie", "Dropbox\\SpideroakShared"',这是不好的。

有任何想法吗?

4

1 回答 1

3

函数的主体应该缩进。

你有b_results = "",但然后尝试append。那是行不通的。你需要b_results = [].

最后,您需要将 的项目b_results作为参数传递给os.path.join这样的:

return os.path.join(*b_results)
于 2012-09-09T22:18:22.897 回答