TypeError: приведение к Unicode: нужна строка или буфер, PosixPath найден - PullRequest
0 голосов
/ 11 января 2020

Я открываю файл, указав путь как PosixPath.

from pathlib import Path

SOURCE_DIR = Path(__file__).resolve().parent.parent.parent  
ROOT_DIR = SOURCE_DIR.parent
DATA_DIR = ROOT_DIR / "data"

with open(DATA_DIR / "filename.txt", "r") as f:
    VALUES = [line.strip() for line in f.readlines()]

Я получаю следующую ошибку: TypeError: coercing to Unicode: need string or buffer, PosixPath found.

Как мне преобразовать весь путь в строку (из PosixPath) или открыть файл PosixPath?

1 Ответ

1 голос
/ 11 января 2020

Вам нужно преобразовать Path в строку. Просто сделайте:

open(str(DATA_DIR / "filename.txt"), "r")

В качестве альтернативы вы можете использовать Path.open:

with (DATA_DIR / "filename.txt").open() as f:
...