我想使用“\”作为运算符来实现文件路径的串联,重新定义相应的函数(如果有的话)。
例如:
path1 = '\home'
path2 = 'codes'
codepath = path1 \ path2
因此,在重新定义方法时在路径1和路径2之间添加str“\”,我应断言codepath = '\home\codes'
答案 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")