是否有与#34; \"相对应的功能在python?

时间:2014-05-09 14:15:39

标签: python string python-2.7 path

我想使用“\”作为运算符来实现文件路径的串联,重新定义相应的函数(如果有的话)。

例如:

path1 = '\home'
path2 = 'codes'

codepath = path1 \ path2

因此,在重新定义方法时在路径1和路径2之间添加str“\”,我应断言codepath = '\home\codes'

1 个答案:

答案 0 :(得分:4)

pathlib模块支持/用于连接路径对象。

>>> p = Path('/etc')
>>> q = p / 'init.d' / 'reboot'
>>> q
PosixPath('/etc/init.d/reboot')
>>> q.resolve()
PosixPath('/etc/rc.d/init.d/halt')

作为如何使用__div__的示例,这是一个扩展str的简单类。只要至少有一个参数是MyPath的实例(即,它不适用于两个普通字符串),它应该可以工作。

class MyPath(str):
    def __div__(self, other):
        assert isinstance(other, str)
        return os.path.join(self, other)
    def __rdiv__(self, other):
        assert isinstance(other, str)
        return os.path.join(other, self)

# Using __div__
print MyPath("/home/bob") / MyPath("bin")
print MyPath("/home/bob") / "bin"

# Using __rdiv__
print "/home/bob" / MyPath("bin")