尝试制作从播放列表中提取歌曲信息的脚本。你知道吗
这是我的播放列表的开头:
#EXTM3U
#EXTINF:402,Junior's Eyes - Black Sabbath
/Users/omitted/Black Sabbath/[1978] Never Say Die!/03. Junior's Eyes.mp3
#EXTINF:327,After Forever - Black Sabbath
/Users/omitted/Black Sabbath/[1971] Master of Reality/02. After Forever.mp3
#EXTINF:341,Killing Yourself to Live - Black Sabbath
/Users/omitted/Black Sabbath/[1973] Sabbath Bloody Sabbath/05. Killing Yourself to Live.mp3
#EXTINF:210,Rock 'n' Roll Doctor - Black Sabbath
/Users/omitted/Black Sabbath/[1976] Technical Ecstasy/06. Rock 'n' Roll Doctor.mp3
这是我写的剧本:
import re
f = open('Sabbath.m3u', 'r')
pTitle = re.compile('(?<=,)[A-Za-z0-9][A-Za-z0-9 \']+[A-Za-z0-9]')
pArtist = re.compile('(?<=- )[A-Za-z0-9][A-Za-z0-9 ]+[A-Za-z0-9]')
for str in f:
title = pTitle.search(str)
artist = pArtist.search(str)
print artist.group() + ' - ' + title.group()
f.close()
运行脚本的结果是:
Black Sabbath - Junior's Eyes
就这样。为什么不在整个文件中循环?它显然到达了第2行,因为第1行在每个.m3u文件中都是“#EXTM3U”。你知道吗
请记住,我想知道为什么这不起作用,而不仅仅是替换代码。你知道吗
文件中有几行正则表达式不匹配。在这种情况下,Match对象是
None
,而None
没有.group()
属性,导致AttributeError
被引发。您应该在控制台中看到该错误。你知道吗你可以这样做
相关问题 更多 >
编程相关推荐