Python模块创build音乐播放列表(Windows)

我想创build一个简单的python脚本来查看文件夹和子文件夹,并创build一个包含mp3文件夹名称的播放列表。 但到目前为止,我只遇到了在Linux上工作的Python模块,或者我无法弄清楚如何安装它们(pymad)..

这只是为了我的android手机,所以想像m3u格式应该这样做..我不关心任何其他元数据,而不是MP3文件自己的名字。

Solutions Collecting From Web of "Python模块创build音乐播放列表(Windows)"

我其实只是看着http://en.wikipedia.org/wiki/M3U ,看到写m3u文件是很容易的…应该可以用简单的python写文本文件

这是我的解决方案

 import os import glob dir = os.getcwd() for (path, subdirs, files) in os.walk(dir): os.chdir(path) if glob.glob("*.mp3") != []: _m3u = open( os.path.split(path)[1] + ".m3u" , "w" ) for song in glob.glob("*.mp3"): _m3u.write(song + "\n") _m3u.close() os.chdir(dir) # Not really needed.. 

我写了一些代码,将根据您的标准返回所有嵌套的播放列表候选人列表:

 import os #Input: A path to a folder #Output: List containing paths to all of the nested folders of path def getNestedFolderList(path): rv = [path] ls = os.listdir(path) if not ls: return rv for item in ls: itemPath = os.path.join(path,item) if os.path.isdir(itemPath): rv= rv+getNestedFolderList(itemPath) return rv #Input: A path to a folder #Output: (folderName,path,mp3s) if the folder contains mp3s. Else None def getFolderPlaylist(path): mp3s = [] ls = os.listdir(path) for item in ls: if item.count('mp3'): mp3s.append(item) if len(mp3s) > 0: folderName = os.path.basename(path) return (folderName,path,mp3s) else: return None #Input: A path to a folder #Output: List of all candidate playlists def getFolderPlaylists(path): rv = [] nestedFolderList = getNestedFolderList(path) for folderPath in nestedFolderList: folderPlaylist = getFolderPlaylist(folderPath) if folderPlaylist: rv.append(folderPlaylist) return rv print getFolderPlaylists('.')