Как отобразить файлы из ftp в кнопках kivy

Мне необходимо отобразить файлы по кнопкам,сколько файлов,столько и кнопок Здесь я применил ftp-list[index - 1] Но как сделать так чтобы количество кнопок совпало с количеством файлов на сервере?

При компиляции кода мне выдает ошибку list index out of range т.к второго файла на сервере нет

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from ftplib import FTP

ftp = FTP('myftpserver')
ftp.login('mylogin', 'mypass')
try:
ftp.mkd('folder')
except Exception:
    print('Directory exists')


ftp.cwd('folder')
class MyApp(App):

    def cd(self, event):
            print('click1')

    def cd2(self, event):
            print('click2')

    def cd3(self, event):
            print('click3')

    def cd4(self, event):
            print('click4')
    
    def build(self):
        bl = GridLayout(cols=3, spacing=10)
        
        ftp_list = [i for i in ftp.nlst()]
    
        bl.add_widget( Button(text=ftp_list[1 - 1], on_press = self.cd))
        bl.add_widget( Button(text=ftp_list[2 - 1], on_press = self.cd2))
        bl.add_widget( Button(text=ftp_list[3 - 1], on_press = self.cd3))
        bl.add_widget( Button(text=ftp_list[4 - 1], on_press = self.cd4))
        
        
        return bl
        
        
   if __name__ == '__main__':
    MyApp().run()

Ответы (0 шт):