将 os.path 转换为 pathlib 模块未按预期进行

Converting os.path to pathlib module no working out as expected

我一直在尝试用新的 pathlib 模块替换 os.path。在这些行中,os.path 每次都没有错误,而 Pathlib 模块会带来错误:

Path' and 'str'
[!] send_logs // Error.. ~ unsupported operand type(s) for +: 'PosixPath' and 'str'

这样做的主要目的是将文件写入该文件夹;使用 Path.is_dir(log_dir) 返回 True。通过 pathlib 模块尝试这样做会带来错误。我试图找到其他来源来寻找答案,并将 PosixPath 作为一个单独的变量用于 expanduser;无济于事我被带到这里

我很抱歉,因为我是新手,这是我的第一个 'projects'!非常感谢所有帮助。我也遇到过类似的问题,但他们的目标是找到主目录,即 Path.owner(Path.home())

#log_dir = os.path.expanduser('~') + '/Downloads/'   --- commented out for pathlib/path
p = PosixPath('~' + '/Downloads/')
log_dir = Path.expanduser(Path(p))

感谢您提供的帮助。设法让它与单行一起工作:以与 os.path.expanduser()

相同的方式
log_dir = str(PosixPath('~' + '/Downloads/').expanduser())

编辑: 我想你正在寻找这个:

>>> p = PosixPath('~/films/Monty Python')
>>> p.expanduser()
PosixPath('/home/eric/films/Monty Python')

请记住 pathlib.Path(somepath) returns 是一个路径库对象,但不是字符串。要将 pathlib 对象连接到字符串,请使用

str(pathlib.Path(somepath))+"somepath"

或在pathlib 文档

中查找 .str 或类似方法