我在使用'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
子句,如果if
或elif
条件都没有评估为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
清楚的