2016-12-22 7 views
2

私は自分の曲の名前のリストを使用する音楽プレーヤーを作ったが、それは本当に迷惑なので、その中のすべての曲の名前のテキストファイルを作った。 テキストをリストに変換してから、最初の曲をロードしようとしますが、ロードされません。 これは私のコードです:python pygame music load from textファイル

SongPath = '/home/pi/Desktop/Muziek/' 
f = open(SongPath + 'Songs.txt') 
Song = f.readlines() 
print(SongPath + Song[0]) 
print('Music Player(Alpha2.2)') 
import pygame 
from time import sleep 
sorted(Song) 
CurrentSong = 0 
State = 'Playing' 
pygame.mixer.init() 
pygame.mixer.music.load(SongPath + Song[0]) 
pygame.mixer.music.play() 
print("Songs:") 
for i in range(0, len(Song)): 
    print(i+1, Song[i]) 
print('\nStarted auto play on:\n' + Song[CurrentSong]) 

... あり多くのコードがあるが、それはこの質問には無関係です。 しかし、私はそれをロードし、それは言う:

/home/pi/Desktop/Muziek/Toto-Afrika.mp3 
Music Player(Alpha2.3) 
Traceback (most recent call last): 
    File "/home/pi/ABC.py", line 13, in <module> 
     pygame.mixer.music.load(SongPath + Song[0]) 
pygame.error: 
Couldn't open '/home/pi/Desktop/Muziek/Toto-Africa.mp3' 

ところで絵は、私はそれを入力したのでアップロードできませんでした。

+1

'sorted(Song)'はインプレースでソートされないことに注意してください。 'Song = sorted(Song)'は 'Song'をソートされたリストを指すようにします。エラーについては、このファイルが実際には同じ名前と同じディレクトリに存在することを絶対に確信していますか? – ForceBru

+0

ForceBruはチップをありがとう! – OADINC

+0

パスをより明示的にしてみてください。また、 'import'ではなく' Import'ではなく 'import'です – moogle

答えて

2

f.readlines()は、それぞれ末尾に改行'\n'が付いた文字列のリストを返します。

だから、実際に(元のエラーメッセージではなく、あなたの再入力されたバージョンで、より密接に見て?:終了引用符は、実際に以下のファイル名の行に表示されない)'/home/pi/Desktop/Muziek/Toto-Africa.mp3\n'をロードしようとしている

これを試してみてください:

pygame.mixer.music.load(SongPath + Song[0].strip()) 
+0

THANKSなぜ次の行にあるのだろうと思っていたのです... – OADINC

+1

protip:デバッグ文として、 'print(repr(SongPath + Song [0]))'は 'print(SongPath +ソング[0]) ' – jez