正则表达式与有一定格式的文本

最近用aMule扒下来一堆cd。这些cd很神奇,是一堆iso,里面是一些flac文件…… 这些flac都没有歌曲信息,于是我想办法提取歌曲信息存进去…… 首先是文件名。文件名还算有点规律,都是###-(#) xxx _ xxx _ xxx _ xxx这样的。但是搞了没几张就发现,这个不太靠谱。首先是,有时候分隔用的是_,有时候是__…… 其次有时候一个域内部也会有_,例如标题里面时常出现…… 再次,看上去不少文件名最后被截断了…… 于是为了搞出靠谱的歌曲信息,还是用别的办法。 其次,每个cd还有个Vol ## xxx.txt的文件。打开一看,好歹比文件名有规律一点,第一行是专辑信息,之后有些# xxx : xxx / xxx = xxx这样的行,最后还有一些#-# xxx的表示录音时间的行。于是搞了个简单的python脚本,parse这些信息存进去…… 既然是parse文本,那就正则表达式。一开始可简单了。再配合glob找文件,mutagen保存歌曲信息,看上去都很美好…… 直到处理没几张专辑之后我发现:格式貌似不止一种…… 接下来就是各种麻烦的事情…… 有时候,因为是一个作品的各个部分,除了第一部分那行外艺术家之类信息统统没有,只有一个小标题…… 有时候,艺术家信息在下面录音时间那行的末尾…… 有时候,录音时间那些行不是#-#或者#,而是#、#-#、#-#这样…… 有时候,xxx : xxx表示作曲:标题,但有时候,xxx : xxx表示大标题:小标题…… 还有时候,xxx : xxx就完全是个小标题…… 有时候,大标题和小标题之间用—分隔,但有时候,用:分隔…… 有时候,:变成了;…… 有时候,/不见了…… 反正一开始一个没几行的python脚本膨胀到了超过两百行,有时候还需要手动处理…… 例如有一张里面艺术家跑到了第一行专辑信息里…… 最后好歹算是差不多弄完了。虽说这还是有点格式的文本(我觉得肯定是人写的),正则表达式处理还是很麻烦。如果处理系统有音乐相关信息的话,估计能够更好地完成任务(例如知道作曲家都有那些这样)……

上周投完了PLDI

这次是二作…… 上次是三作…… 反正就是我们几个…… 这次的paper挺实用的,看上去肯定能中的样子。 弄了个新的带3G的Nexus 7,今天拿到一看,屏幕居然是碎的…… 外面玻璃是好的,大约是里面的液晶屏挂了。 于是找退货,Google Play Store连个退货链接都没有,倒是搜到了一个Return Policy。后来想还是打电话快,于是一个电话过去。 那边说给退,先给你发个新的…… 这个新的还要你先押钱,等到你把原来那个寄回去没有问题了再还给你……(虽说好像这个押钱只是保证你有这个钱,不会真扣……) 于是大约又要到下周才能弄到新的了,希望新的这个不会也是坏的…… Google这个Play Store比起Amazon真是弱多了…… 发货慢,界面还不友好…… PS. 居然刚刚ship了…… 看来Replacement是优先处理的么…… 印象好了点……