web-dev-qa-db-ja.com

+でサポートされていないオペランドタイプ: 'WindowsPath'および 'str'

これは私が取り組んでいるコードです。それはエラーをスローしますUnsupported operand type(s) for +: 'WindowsPath' and 'str'私は多くのことを試みましたが、どれもこれを修正していません。 (エラーのある行を削除することは別として、それも役に立ちません)。コンテキストについては、このスクリプト(完了したら)は、入力したID(SongsPath.txtで指定されたディレクトリ)に基づいてファイル(mp3)を検索し、バックアップしてから、別のファイル(名前はこれらのファイルを取得するプログラムは古いファイルの代わりに新しい曲を再生しますが、いつでも元のファイルに復元できるように、以前のファイルの名前)。 (曲はnewgroundsからダウンロードされ、newgroundsオーディオポータルIDによって保存されます)(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())
2
Moonaliss

「+」文字を使用して2つの異なるタイプのデータを連結しているのです

エラー行を使用する代わりに:

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

このように使用してみてください:

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

'fullpath'変数を使用してファイルを開きます。

3