if语句的未结合变量错误



我在使用'unboundlocalerror:local variable'fileName'在分配前引用'''''''''''''''''''''''''''''使用if/elif语句的变量时。

代码获取文件名,并使用正则垃圾将垃圾拆分为开始和结束。然后,它返回新的文件名和foldername。:

input:
'[subcompany] series title - 01 [more junk].mkv'
desired output:
('series title - 01.mkv', 'series title')

麻烦的代码:

def nameFix(f):
    start, end = os.path.splitext(f)
    if f.endswith('mkv') and f.startswith('[H'):
        fileName = fileReg.findall(f)
    elif f.endswith('mkv') and f.startswith('['):
        fileName=altReg.findall(f)

    folder = folderReg.findall(fileName[0][1])
    fileFix = fileName[0][1] + end
    fixFolderName = folder[0]
    return (fileFix, fixFolderName)

基本上,因为您没有else子句,如果ifelif条件都没有评估为True,则未定义fileName。也许尝试在else子句中返回f,以使该函数退出:

if f.endswith('mkv') and f.startswith('[H'):
    fileName = fileReg.findall(f)
elif f.endswith('mkv') and f.startswith('['):
    fileName=altReg.findall(f)
else:
    return f

清楚的

最新更新