我有一堆文件(电视剧集,虽然这是相当随意的),我想检查它们是否匹配特定的命名/组织方案..
目前:我有三个正则表达式数组,一个用于有效文件名,一个用于缺少剧集名称的文件,一个用于有效路径。
然后,我遍历每个有效文件名正则表达式,如果匹配,则将其附加到“有效”字典,如果不匹配,则对缺少的 ep-name 正则表达式执行相同操作,如果匹配,我将其附加到“无效” " 带有错误代码 (2:'missing epsiode name') 的 dict,如果两者都不匹配,则使用 'malformed name' 错误代码将其添加为无效。
当前代码可以在这里找到
我想添加一个规则来检查每个目录中是否存在 folder.jpg 文件,但是添加它会使代码在当前状态下变得更加混乱。
我怎样才能以更可扩展的方式编写这个系统?
它需要检查的规则是..
- 文件格式为
Show Name - [01x23] - Episode Name.avi
或Show Name - [01xSpecial02] - Special Name.avi
或Show Name - [01xExtra01] - Extra Name.avi
- 如果文件名的格式
Show Name - [01x23].avi
显示它输出的“缺少剧集名称”部分 - 路径应采用格式
Show Name/season 2/the_file.avi
(其中第 2 季应为文件名中的正确季号) - 每个
Show Name/season 1/
文件夹应包含“folder.jpg”
。有任何想法吗?虽然我正在尝试检查电视剧集,但这个概念/代码应该能够适用于很多事情。
我唯一的想法是格式的字典列表:
checker = [
{
'name':'valid files',
'type':'file',
'function':check_valid(), # runs check_valid() on all files
'status':0 # if it returns True, this is the status the file gets
}