Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:laboratory_iot:exp43 [2020/05/23 18:15] labuser29products:laboratory_iot:exp43 [2020/05/23 22:00] (текущий) labuser29
Строка 14: Строка 14:
 После этого можно работать с функциями файловой системы. Для начала получим список файлов: После этого можно работать с функциями файловой системы. Для начала получим список файлов:
 <file python Exp43-1.py[enable_line_numbers="2", start_line_numbers_at="1"]> <file python Exp43-1.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +import os
 +
 files = os.listdir() files = os.listdir()
  
Строка 19: Строка 21:
     print(file)     print(file)
 </file> </file>
 +
 +Программы вывела в терминал список файлов. В вашем случае вывод может отличаться.
 +<code>
 +boot.py
 +init.mpy
 +lcd_api.py
 +esp8266_i2c_lcd.py
 +mfrc522.mpy
 +temp_data.csv
 +</code>
 +
 +Мы видим список файлов. Однако нам может требоваться допонительная информация, например размер файлов. Для этого есть функция ''ilistdir()''
 +<file python Exp43-2.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +import os
 +
 +files = os.ilistdir()
 +for file in files:
 +    print(file)
 +</file>
 +
 +Программа выводит список файлов: Имя, тип (файл или директория), 0, размер файла в байтах 
 +
 +<code>
 +('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)
 +</code>
 +
 +Теперь давайте создадим директорию с именем dir:
 +''os.mkdir('dir')''. Если такая директория уже есть, то получим сообщение об ошибке. Если все в порядке, то директория будет создана. Теперь повторим вывод функции ilistdir()
 +
 +<code>
 +('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', 16384, 0, 0)
 +</code>
 +
 +Как видно, директория dir создалась.
 +
 +В файловых системах есть такое понятие как //путь//. Это последовательность вложенных директорий от корня файловой системы до какого-либо файла или директории. Давайте посмотрим путь до текущей директории:
 +<file python Exp43-3.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +import os
 +
 +uos.getcwd()
 +</file>
 +
 +Результат:
 +<code>
 +'/'
 +</code>
 +Текущей директорией является / - это значит, что мы находимся в корне файловой системы. Давайте перейдем в недавно созданную нами директорию dir и повторно выведем текущую директорию
 +
 +<file python Exp43-3.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +import os
 +
 +os.chdir('/dir')
 +uos.getcwd()
 +</file>
 +
 +Результат:
 +<code>
 +'/dir'
 +</code>
 +Это значит, что мы перешли в директорию /dir и сейчас она является текущей директорией.
 +Если мы сейчас запросим список файлов, то получим пустой ответ так как в директории /dir у нас нет файлов. Мы можем получить список файлов в корне или в другой директории, если укажем конкретный путь, например:
 +<code python>
 +files = os.listdir('/')
 +</code>
 +
 +Вернемся обратно в корень файловой системы и удалим директорию dir:
 +<file python Exp43-4.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +import os
 +
 +os.chdir('/')
 +os.rmdir('dir')
 +</file>
 +
 +Директорию нельзя удалить, если в ней есть вложенные файлы или директории. Сначала нужно удалить их. Если все в порядке — директория удалится. Если сейчас запросить список файлов в корне, то увидим, что директории dir больше нет.
 +
 +Также мы можем удалить файл
 +<code python>
 +uos.remove('filename')
 +</code>
 +
 +или переименовать файл
 +<code python>
 +uos.rename('old_name', 'new_name')
 +</code>
 +
 +<WRAP center round info 60%>
 +[[https://docs.micropython.org/en/latest/library/uos.html|Подробная информация о работе с файловой системой]]
 +</WRAP>
 +