每次我必须构建路径时,我真的厌倦了键入os.path.join()
而我正在考虑定义这样的快捷方式:
def pj(*args):
from os.path import join
return join(args)
但它会抛出TypeError: join() argument must be str or bytes, not 'tuple'
所以我想知道将参数传递给os.path.join()
的正确方法是什么,总而言之,我是否正在尝试重新发明轮子?
答案 0 :(得分:4)
你应该解包 .join
的参数:
join(*args)
# ^
像这样:
>>> import os.path.join
>>> args = ('/usr/main/', 'etc/negate/')
>>> os.path.join(*args)
'/usr/main/etc/negate/'
P.S。:在你的函数中使用import
并不是一个好主意。将其移至模块顶部。
答案 1 :(得分:3)
如果您使用的是Python 3.4,则可以尝试pathlib。
来自doc:
>>> p = Path('/etc')
>>> q = p / 'init.d' / 'reboot'
>>> q
PosixPath('/etc/init.d/reboot')
答案 2 :(得分:0)
您可以在import语句中重命名它:
restored