使用 pathlib 打开 python 中搁置的文件

using pathlib to open shelved files in python

我使用 pathlib 打开存在于不同目录中的文本文件,但出现此错误

TypeError:`"Unsupported operand type for +:'WindowsPath' and 'str'" 

当我尝试像这样打开当前目录中乐谱文件夹中存在的搁置文件时。

from pathlib import *
import shelve

def read_shelve():
    data_folder = Path("score")
    file = data_folder / "myDB"
    myDB = shelve.open(file)
    return myDB

我哪里做错了或者有其他方法可以做到这一点吗?

shelve.open() 要求文件名为 string 但您提供 WindowsPathPath 创建的对象。

解决方案是按照 pathlib documentation 准则简单地将路径转换为字符串:

from pathlib import *
import shelve

def read_shelve():
    data_folder = Path("score")
    file = data_folder / "myDB"
    myDB = shelve.open(str(file))
    return myDB