Неподдерживаемые типы операндов для +: 'WindowsPath' и 'str' - PullRequest
2 голосов
/ 23 января 2020

Это код, над которым я работаю. он выдает ошибку Unsupported operand type(s) for +: 'WindowsPath' and 'str' Я перепробовал много вещей, и никто не исправил это. (кроме удаления строки с ошибкой, но это тоже не полезно). для контекста, этот сценарий (когда он будет выполнен) должен найти файл (mp3) на основе введенного вами идентификатора (в каталоге, указанном в SongsPath.txt), создать его резервную копию, а затем заменить его другим файлом (переименованным в имя предыдущего файла), чтобы программа, извлекающая эти файлы, воспроизводила новую песню вместо старой, но в любое время могла восстановить исходную песню. (песни загружаются с newgrounds и сохраняются под идентификатором аудиопортала newgrounds) (я использую python 3.6.5)

import os
import pathlib
from pathlib import Path

nspt = open ("NewSongsPath.txt", "rt")
nsp = Path (nspt.read())
spt = open("SongsPath.txt", "rt")
sp = (Path(spt.read()))
print("type the song ID:")
ID = input()
csp = str(path sp + "/" + ID + ".mp3") # this is the line im getting the error on.
sr = open(csp , "rb")
sw = open(csp, "wb")
print (sr.read())

1 Ответ

3 голосов
/ 23 января 2020

Происходит то, что вы используете символ «+» для объединения двух различных типов данных

Вместо использования строки ошибки:

csp = str(path sp + "/" + ID + ".mp3")

Попробуйте использовать это way:

csp = str(Path(sp))
fullpath = csp + "/" + ID + ".mp3"

Используйте переменную 'fullpath', чтобы открыть файл.

...