использование pathlib для открытия готовых файлов в python - PullRequest
1 голос
/ 23 апреля 2020

Я использую 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

Что я делаю не так или есть другой способ добиться этого?

1 Ответ

1 голос
/ 25 апреля 2020

shelve.open () требует имя файла в виде string , но вы предоставляете WindowsPath объект, созданный Path.

Решением будет простое преобразование Path в строку, следуя pathlib документации рекомендации:

from pathlib import *
import shelve

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