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 に答える