Получить переменную работу вне функции в python - PullRequest
0 голосов
/ 22 марта 2020

Итак, я пытаюсь это:

Я хочу, чтобы приложение выполняло поиск по указанным c расширениям в различных папках, а затем записывало все это в excel. Моя проблема в том, как мне получить последний результат * 1003? * х чтобы использовать его в новом вызове функции? этот путь не будет начинаться с 1 или 0 снова и продолжится до следующей ячейки в Excel.

Спасибо, извините за engli sh, но это не мой основной язык;)

workbook = xlsxwriter.Workbook('videogames.xlsx')
worksheet = workbook.add_worksheet("Videogames")

cell_format = workbook.add_format({'bold': True, 'center_across': True, 'font_size': 12})
cell_format2 = workbook.add_format({'font_size': 12})
worksheet.write(0, 0, "Game", cell_format)
worksheet.write(0, 1, "Console", cell_format)

def folder_check (folder, exten, console, width, x):
    for rom in os.listdir(folder):
        if rom.endswith(exten):
            if width > len(rom):
                width = width
            else:    
                width = len(rom)

            worksheet.set_column(x, 0, width)
            worksheet.set_column(x, 1, width)
            worksheet.write(x, 0, str(os.path.splitext(rom)[0]), cell_format2)
            worksheet.write(x, 1, str(console), cell_format2)
            x += 1

folder_check("E:\Games\Roms\Atari 2600\Roms",".a26",'Atari 2600',0,1)
folder_check("E:\Games\Roms\Atari Lynx\Roms",".lnx",'Atari Lynx',0,1)

workbook.close()

1 Ответ

0 голосов
/ 22 марта 2020

Верните x из вашей функции и используйте ее в следующем вызове:

def folder_check (folder, exten, console, width, x):
    for rom in os.listdir(folder):
        # other stuff elided
            x += 1
    return x

x = folder_check("E:\Games\Roms\Atari 2600\Roms",".a26",'Atari 2600',0,1)
folder_check("E:\Games\Roms\Atari Lynx\Roms",".lnx",'Atari Lynx',0,x)

И если вы хотите включить также width:

def folder_check (folder, exten, console, width, x):
    for rom in os.listdir(folder):
        # other stuff elided
            x += 1
    return width,x

width,x = folder_check("E:\Games\Roms\Atari 2600\Roms",".a26",'Atari 2600',0,1)
folder_check("E:\Games\Roms\Atari Lynx\Roms",".lnx",'Atari Lynx',width,x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...