Python - Возвращение двух значений из функции и получение ошибки - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь вернуть два значения из функции, но получаю эту ошибку:

File "c:/Users/petro/Desktop/deleteunusedmediafiles.py", line 64, in <module>
    sourceFilesFolderName, activeSourceFiles = getActiveSourceFilesAndFolder(folder, files)
TypeError: cannot unpack non-iterable NoneType object

Вот код. Эта строка третья снизу:

import os, re
from pprint import pprint


os.chdir(r"C:\Users\petro\Desktop\deletefiles")
rootFolder = os.getcwd()

folderNames = "(audio\s+files|media\s+files|media|audio|content|source|sources)"
readableFormatsReaper = '''(wav|mp3|mp4|mov|acid|aiff|avi|bwf|cdda|edl|flac|kar|midi|
                        mogg|mpeg|ogg|vorbis|ogg|opus|qt|radar|rex2|syx|w64|wavpack|wmv)''' 


sourceFilesRegex = re.compile(r'''
<SOURCE\s+WAVE\s+FILE\s+
"
'''+folderNames+'''
\\\?
(.+\.'''+readableFormatsReaper+''')
"
\s+>
''', re.IGNORECASE | re.VERBOSE)


def getActiveSourceFilesAndFolder(folder, files):

    if files.endswith(".rpp") == True:

        sourceFiles = []

        projectFile = open(folder + "\\" + files)
        projectFileContent = projectFile.read()
        sourceFileMatches = sourceFilesRegex.findall(projectFileContent)

        for files in sourceFileMatches:
            sourceFiles.append(files[1])

        pprint(sourceFiles)
        pprint("------------------------------")
        pprint(sourceFileMatches)

        return files[0], sourceFiles


def getAllSourceFilesFromFolder(folder, subfolder, sourceFilesFolderName):

    if subfolder == sourceFilesFolderName:

        folderMediaFiles = []

        for files in os.listdir(folder + "\\" + subfolder):

            if files.endswith(".wav") == True:
                folderMediaFiles.append(files)

        pprint(folderMediaFiles)
        pprint("------------------------------")


for folder, subfolders, files in os.walk(rootFolder):

    for files in os.listdir(folder):

        sourceFilesFolderName, activeSourceFiles = getActiveSourceFilesAndFolder(folder, files)

    for subfolder in subfolders:

        getAllSourceFilesFromFolder(folder, subfolder, sourceFilesFolderName)

Я не понимаю, почему происходит эта ошибка. Когда я возвращаю одну из этих переменных самостоятельно, код работает нормально, однако он не работает с двумя или более.

...