因此,这个问题可能有点含糊/过于笼统,但是:
我真的很喜欢Pathlib
,但是每当使用它时,我都会感到烦恼,因为它很容易失去对对象是路径还是字符串的跟踪。
例如,这是我遇到的常见模式:
from pathlib import Path
from external_package import bar # takes strings as filepaths
def foo(filepath: Path): # takes Paths as filepaths
out = do_something_with(filepath)
return out
fpath = Path("/my/file/location.whatever")
foo(fpath)
bar(fpath) # raises TypeError, have to convert to str first
因此,即使我喜欢它的干净程度,使用Pathlib进行所有操作还是很烦人的,因为许多外部程序包仅将字符串用作其文件路径。我最终不得不不断地调用str(fpath)
或使用isinstance
进行检查,这会通过样板类型检查阻塞我的代码。
有人遇到这种普遍的烦恼并找到了一个好的解决方案吗?