我是python的新手。这段代码来自Mark Pilgrim的“Dive Into Python”,似乎是用2个args调用join(),它运行正常:
dirname="/usr/"
[f for f in os.listdir(dirname) if os.path.isdir(os.path.join(dirname,f))]
但如果你尝试:
smthn="data"
smthnelse="otherdata"
print "\n".join(smthn,smthnelse)
我们得到一个错误,即join()只能接受一个参数。
答案 0 :(得分:4)
os.path.join
将任意数量的字符串作为参数,str.join
将一个参数视为提供字符串的迭代。这两个功能是单独的功能。
答案 1 :(得分:0)
请使用str.join(),如下所示:
smthn="data"
smthnelse="otherdata"
print( "\n",smthn.join(smthnelse) )
因为你在smthn>>“data”的空格之间放了smthnelse
os.path.join()看起来不像str.join
第二个用于字符串和seq 并且仅用于文件系统路径。