我用Python3编写了一个小工具,帮助我将音乐收藏从网络连接存储复制到移动设备上。这样做的好处是,它将自动转换flac文件为ogg-vorbis (以节省空间),并还排除了一些文件的音频标签(即艺术家,专辑,日期等)。
我对排除功能的有限性质不满意,我想改进它,但我遇到了一个心理障碍,我正在寻求如何继续进行的建议。
我想让用户写一个排除文件,看起来像这样:
exclude {
artist is "U2"
artist is "Uriah Heep" {
album is "Spellbinder"
album is "Innocent Victim"
}
}这将转化为:
exclude if
(artist = "U2") OR
(artist = "Uriah Heep" AND (album = "Spellbinder" OR album = "Innocent Victim"))将有更多的条件,如子字符串匹配和日期范围。
我一直在检查PLY,但我正在努力解决如何解析这种类型的嵌套结构以及如何表示结果条件的概念,以便在复制操作期间应用排除过滤器时可以在代码中执行它。
发布于 2015-11-12 03:13:55
你的数据结构几乎是a dict,为什么不直接使用JSON呢?为了做得更好,你可以使用Lucene Query Syntax。
https://stackoverflow.com/questions/33656929
复制相似问题