Написал тестовую программы, которая выводит массив в виде текста, разбивая его на строки (один файл – одна строка). Проблема в том, что программа выводит массив только из двух файлов, остальные отбрасывает, соответственно листать там больше нечего. И выводится это все в виде текста, а это значит никакие действия с выведенными файлами в списке совершать невозможно.
Как решить эту проблему?
Ниже прикрепил, то что дает программа на выходе.
Код программы:
#!/usr/bin/python import RPi.GPIO as GPIO import os from time import sleep directory = '/media/TRANSCEND' files = os.listdir(directory) images = filter(lambda x: x.endswith('.jpg'), files) class HD44780: def __init__(self, pin_rs=7, pin_e=8, pins_db=[25, 24, 23, 18]): self.pin_rs=pin_rs self.pin_e=pin_e self.pins_db=pins_db GPIO.setmode(GPIO.BCM) GPIO.setup(self.pin_e, GPIO.OUT) GPIO.setup(self.pin_rs, GPIO.OUT) for pin in self.pins_db: GPIO.setup(pin, GPIO.OUT) self.clear() def clear(self): self.cmd(0x33) # $33 8-bit mode self.cmd(0x32) # $32 8-bit mode self.cmd(0x28) # $28 8-bit mode self.cmd(0x0C) # $0C 8-bit mode self.cmd(0x06) # $06 8-bit mode self.cmd(0x01) # $01 8-bit mode def cmd(self, bits, char_mode=False): sleep(0.001) bits=bin(bits)[2:].zfill(8) GPIO.output(self.pin_rs, char_mode) for pin in self.pins_db: GPIO.output(pin, False) for i in range(4): if bits[i] == "1": GPIO.output(self.pins_db[::-1][i], True) GPIO.output(self.pin_e, True) GPIO.output(self.pin_e, False) for pin in self.pins_db: GPIO.output(pin, False) for i in range(4,8): if bits[i] == "1": GPIO.output(self.pins_db[::-1][i-4], True) GPIO.output(self.pin_e, True) GPIO.output(self.pin_e, False) def message(self, text): for char in text: if char == ',': self.cmd(0xC0) # переход на следующую строку else: self.cmd(ord(char),True) if __name__ == '__main__': lcd = HD44780() images = str(images) lcd.message(images