Это старая версия документа!


Эксперимент 43. Файловая система. Файловые операции

Фа́йловая систе́ма (англ. file system) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов (и каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла.

Файловая система связывает носитель информации с одной стороны и интерфейс для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация на носителе, так же как и о том, на каком физическом типе носителя (CD, жёстком диске, магнитной ленте, блоке флеш-памяти или другом) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

Мы уже знаем, что микроконтроллер, на базе которого построен наш конструктор имеет Flash- память с организованной на ней файловой системой. Человек может получить доступ к этой «флешке», например, через файловый менеджер среды программирования EsPy. Но наши программы тоже могут работать с файловой системой. Мы уже загружали библиотеки и даже создавали файл с данными с температурных датчиков. Но это не все возможности. Давайте познакомимся с файловой системой поближе.

Для работы с файловой системой необходимо подключить библиотеку:

import os

После этого можно работать с функциями файловой системы. Для начала получим список файлов:

Exp43-1.py
  1. import os
  2.  
  3. files = os.listdir()
  4.  
  5. for file in files:
  6. print(file)

Программы вывела в терминал список файлов. В вашем случае вывод может отличаться.

boot.py
init.mpy
lcd_api.py
esp8266_i2c_lcd.py
mfrc522.mpy
temp_data.csv

Мы видим список файлов. Однако нам может требоваться допонительная информация, например размер файлов. Для этого есть функция ilistdir()

Exp43-2.py
  1. import os
  2.  
  3. files = os.ilistdir()
  4. for file in files:
  5. print(file)

Программа выводит список файлов: Имя, тип (файл или директория), 0, размер файла в байтах или -1, если размер определить невозможно.

('boot.py', 32768, 0, 252)
('init.mpy', 32768, 0, 225)
('lcd_api.py', 32768, 0, 6882)
('esp8266_i2c_lcd.py', 32768, 0, 3293)
('mfrc522.mpy', 32768, 0, 2392)
('temp_data.csv', 32768, 0, 820)

Теперь давайте создадим директорию с именем dir: os.mkdir('dir')