os.path.join()的简短方法

时间:2016-06-22 12:18:30

标签: python python-2.7 python-3.x os.path

每次我必须构建路径时,我真的厌倦了键入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()的正确方法是什么,总而言之,我是否正在尝试重新发明轮子?

3 个答案:

答案 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