Win 10/64 Win/3.5:
我想从变量( pygame.mixer.music.load(). mp3Fin)中传递一个.mp3s列表给有办法这样做吗?当我单独加载时,PyGame确实可以工作。在过去的几周里,我一直在学习编程/python,我对堆栈溢出很陌生,如果我遗漏了任何东西,我很抱歉。
latest 这里是最新的代码,正确的格式化/缩进。它仍然有一个错误,但这个错误已经变成了一些与“卢旺达人”有关的东西。只是在bing上找到了一些关于卢旺达人的链接。将删除之前的代码,因为我认为它们不再有帮助了。
代码:
if catChow == cat1[0]:
print("Welcome to SoCha's music player.")
def get_files(directories):
mp3Pre = []
for root, directories, files in os.walk(directories):
for filename in files:
#Joins the two strings in order to form the full filepath.
filepath = os.path.join(root, filename)
mp3Pre.append(filepath) #Adds to the mp3PreParse variable above.
return mp3Pre
mp3Post = get_files("C:\\Users\\SoCha\\Music")
pygame.mixer.init()
pygame.mixer.music.load([s for s in mp3Post if s.endswith(".mp3")])
pygame.mixer.music.play()卢旺达错误:
Welcome to SoCha's music player.
Traceback (most recent call last):
File "SoChaOS.2.0.py", line 38, in <module>
pygame.mixer.music.load([s for s in mp3Post if s.endswith(".mp3")])
pygame.error: Couldn't read from RWops
***Repl Closed***这是我在这个原始帖子上做的最后一次编辑。
发布于 2015-09-28 20:30:59
mp3fin是一个字符串。你为什么要索引它?当您调用split()时,它会返回一个数组,然后将其打印,然后丢弃。
在最后一行pygame.mixer.music.load(mp3Fin[1])中,您要剪切字符串并接受第二个字符,即':‘。
你应该打电话给pygame.mixer.music.load(mp3Fin)
我想将.mp3s的列表从变量(mp3Fin)传递给pygame.mixer.music.load()。
mp3Fin不是一个列表。mp3Post是目录中找到的文件列表。当for循环迭代时,每个单独的文件都在mp3Fin中。尝试:
for mp3Fin in mp3Post:
if mp3Fin.endswith(".mp3"):
pygame.mixer.init()
pygame.mixer.music.load(mp3Fin)您可以尝试使用以下方法将列表传递给load buy:
mp3Post = get_files("C:\\Users\\SoCha\\Music")
pygame.mixer.init()
pygame.mixer.music.load([s for s in mp3Post if s.endswith(".mp3")])发布于 2015-09-28 20:37:38
记住,mp3Fin.split()并没有修改mp3Fin的位置-- mp3Fin保持一个字符串!
所以,当你到达第41行时,mp3Fin[1]在mp3Fin的位置1处得到字符。这就是错误中":“的来源,C:/...。
尝试将字符串直接发送给它
pygame.mixer.music.load(mp3Fin)一定要小心这些功能!
https://stackoverflow.com/questions/32831016
复制相似问题