Модули и функции · встроенный MicroPython FEMM 5
pathlib
Небольшой объектный интерфейс к путям и файлам.
Условия работы
- Составляйте пути через Path("results") / "run.csv". Внутренний разделитель этой библиотеки — /.
- absolute и resolve возвращают строку; resolve не устраняет .. и не раскрывает символические ссылки. write_text/write_bytes/rename возвращают None.
- glob/rglob требуют os.ilistdir, которого в проверенной сборке нет: при переборе вызывается AttributeError. Для поиска используйте модуль glob.
- Свойства: name — последний сегмент, parent — Path родителя, stem — имя без последнего расширения, suffix — последнее расширение с точкой.
- touch(exist_ok=True) оставляет существующий файл без обновления времени. expanduser("~") зависит от переменной HOME.
pathlib.Pathpathlib.Path.absolutepathlib.Path.resolvepathlib.Path.with_suffixpathlib.Path.existspathlib.Path.is_filepathlib.Path.is_dirpathlib.Path.statpathlib.Path.read_textpathlib.Path.read_bytespathlib.Path.openpathlib.Path.write_textpathlib.Path.write_bytespathlib.Path.mkdirpathlib.Path.touchpathlib.Path.renamepathlib.Path.unlinkpathlib.Path.rmdirpathlib.Path.globpathlib.Path.rglobpathlib.Path.expanduserpathlib.PathОбъединяет сегменты, очищая повторные /. Абсолютный сегмент сбрасывает предыдущие.
pathlib.Path
Path(*segments)Объединяет сегменты, очищая повторные /. Абсолютный сегмент сбрасывает предыдущие.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
segments | Строковые сегменты пути или объекты, преобразуемые в str. |
Возвращаемое значение
Path.
Пример
"Пример pathlib.Path.\nСреда: встроенный MicroPython FEMM 5.\nОбъединяет сегменты, очищая повторные /. Абсолютный сегмент сбрасывает предыдущие.\nРезультат: Path."
import pathlib
p=pathlib.Path('results')/'run.csv'
assert p.name == 'run.csv' and p.suffix == '.csv' and p.stem == 'run'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.absoluteДополняет относительный путь текущим каталогом.
pathlib.Path.absolute
path.absolute()Дополняет относительный путь текущим каталогом.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Строка абсолютного пути.
Пример
"Пример pathlib.Path.absolute.\nСреда: встроенный MicroPython FEMM 5.\nДополняет относительный путь текущим каталогом.\nРезультат: Строка абсолютного пути."
import pathlib
p=pathlib.Path('results')
assert isinstance(p.absolute(),str)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.resolveДополняет относительный путь текущим каталогом.
pathlib.Path.resolve
path.resolve()Дополняет относительный путь текущим каталогом.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Строка абсолютного пути.
Пример
"Пример pathlib.Path.resolve.\nСреда: встроенный MicroPython FEMM 5.\nДополняет относительный путь текущим каталогом.\nРезультат: Строка абсолютного пути."
import pathlib
p=pathlib.Path('results')
assert isinstance(p.resolve(),str)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.with_suffixМеняет последнюю часть имени после точки.
pathlib.Path.with_suffix
path.with_suffix(suffix)Меняет последнюю часть имени после точки.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
suffix | Новое расширение с точкой либо пустая строка. |
Возвращаемое значение
Новый Path.
Пример
"Пример pathlib.Path.with_suffix.\nСреда: встроенный MicroPython FEMM 5.\nМеняет последнюю часть имени после точки.\nРезультат: Новый Path."
import pathlib
assert str(pathlib.Path('model.fem').with_suffix('.ans')) == 'model.ans'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.existsПроверяет существование.
pathlib.Path.exists
path.exists()Проверяет существование.
Аргументы
Аргументы не требуются.
Возвращаемое значение
bool.
Пример
"Пример pathlib.Path.exists.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет существование.\nРезультат: bool."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
assert p.exists()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.is_fileПроверяет тип обычного файла.
pathlib.Path.is_file
path.is_file()Проверяет тип обычного файла.
Аргументы
Аргументы не требуются.
Возвращаемое значение
bool.
Пример
"Пример pathlib.Path.is_file.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет тип обычного файла.\nРезультат: bool."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
assert p.is_file()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.is_dirПроверяет тип каталога.
pathlib.Path.is_dir
path.is_dir()Проверяет тип каталога.
Аргументы
Аргументы не требуются.
Возвращаемое значение
bool.
Пример
"Пример pathlib.Path.is_dir.\nСреда: встроенный MicroPython FEMM 5.\nПроверяет тип каталога.\nРезультат: bool."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
assert pathlib.Path(work).is_dir()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.statЧитает размер, тип и временные метки.
pathlib.Path.stat
path.stat()Читает размер, тип и временные метки.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Список из 10 целых как os.stat(path).
Пример
"Пример pathlib.Path.stat.\nСреда: встроенный MicroPython FEMM 5.\nЧитает размер, тип и временные метки.\nРезультат: Список из 10 целых как os.stat(path)."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
assert p.stat()[6] == 4
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.read_textЧитает весь текстовый файл.
pathlib.Path.read_text
path.read_text(encoding=None)Читает весь текстовый файл.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
encoding | Имя кодировки; None использует кодировку open. |
Возвращаемое значение
str.
Пример
"Пример pathlib.Path.read_text.\nСреда: встроенный MicroPython FEMM 5.\nЧитает весь текстовый файл.\nРезультат: str."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
assert p.read_text() == 'FEMM'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.read_bytesЧитает весь файл в двоичном режиме.
pathlib.Path.read_bytes
path.read_bytes()Читает весь файл в двоичном режиме.
Аргументы
Аргументы не требуются.
Возвращаемое значение
bytes.
Пример
"Пример pathlib.Path.read_bytes.\nСреда: встроенный MicroPython FEMM 5.\nЧитает весь файл в двоичном режиме.\nРезультат: bytes."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
assert p.read_bytes() == b'FEMM'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.openОткрывает файл; используйте with для закрытия.
pathlib.Path.open
path.open(mode="r", encoding=None)Открывает файл; используйте with для закрытия.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
mode | Режим r/w/a и необязательный b/+. |
encoding | Кодировка текстового потока. |
Возвращаемое значение
Открытый поток.
Пример
"Пример pathlib.Path.open.\nСреда: встроенный MicroPython FEMM 5.\nОткрывает файл; используйте with для закрытия.\nРезультат: Открытый поток."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
with p.open('r') as f:
assert f.read() == 'FEMM'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.write_textЗаписывает весь текст в файл.
pathlib.Path.write_text
path.write_text(data, encoding=None)Записывает весь текст в файл.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
data | Записываемая строка. |
encoding | Кодировка текстового потока. |
Возвращаемое значение
None; файл заменяется.
Пример
"Пример pathlib.Path.write_text.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает весь текст в файл.\nРезультат: None; файл заменяется."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
assert p.write_text('FEMM') is None
assert p.read_text() == 'FEMM'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.write_bytesЗаписывает весь двоичный блок.
pathlib.Path.write_bytes
path.write_bytes(data)Записывает весь двоичный блок.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
data | Двоичные данные. |
Возвращаемое значение
None; файл заменяется.
Пример
"Пример pathlib.Path.write_bytes.\nСреда: встроенный MicroPython FEMM 5.\nЗаписывает весь двоичный блок.\nРезультат: None; файл заменяется."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
assert p.write_bytes(b'FEMM') is None
assert p.read_bytes() == b'FEMM'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.mkdirСоздаёт каталог. На Windows для сложных абсолютных цепочек удобнее os.makedirs.
pathlib.Path.mkdir
path.mkdir(parents=False, exist_ok=False)Создаёт каталог. На Windows для сложных абсолютных цепочек удобнее os.makedirs.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
parents | Создавать отсутствующих родителей. |
exist_ok | Допускать существующий каталог. |
Возвращаемое значение
None.
Пример
"Пример pathlib.Path.mkdir.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт каталог. На Windows для сложных абсолютных цепочек удобнее os.makedirs.\nРезультат: None."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'results'
p.mkdir()
assert p.is_dir()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.touchСоздаёт пустой файл, если он отсутствует.
pathlib.Path.touch
path.touch(exist_ok=True)Создаёт пустой файл, если он отсутствует.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
exist_ok | Допускать существующий файл; False вызывает OSError. |
Возвращаемое значение
None.
Пример
"Пример pathlib.Path.touch.\nСреда: встроенный MicroPython FEMM 5.\nСоздаёт пустой файл, если он отсутствует.\nРезультат: None."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.touch()
assert p.stat()[6] == 0
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.renameПереименовывает файл; сам объект Path продолжает хранить прежнюю строку.
pathlib.Path.rename
path.rename(target)Переименовывает файл; сам объект Path продолжает хранить прежнюю строку.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
target | Строка нового пути. |
Возвращаемое значение
None.
Пример
"Пример pathlib.Path.rename.\nСреда: встроенный MicroPython FEMM 5.\nПереименовывает файл; сам объект Path продолжает хранить прежнюю строку.\nРезультат: None."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
dst=work+'/new.txt'
p.rename(dst)
assert os.path.isfile(dst)
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.unlinkУдаляет указанный файл.
pathlib.Path.unlink
path.unlink(missing_ok=False)Удаляет указанный файл.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
missing_ok | Подавлять отсутствие файла, если OSError содержит errno.ENOENT. |
Возвращаемое значение
None.
Пример
"Пример pathlib.Path.unlink.\nСреда: встроенный MicroPython FEMM 5.\nУдаляет указанный файл.\nРезультат: None."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'result.txt'
p.write_text('FEMM')
p.unlink()
assert not p.exists()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.rmdirУдаляет пустой каталог.
pathlib.Path.rmdir
path.rmdir()Удаляет пустой каталог.
Аргументы
Аргументы не требуются.
Возвращаемое значение
None.
Пример
"Пример pathlib.Path.rmdir.\nСреда: встроенный MicroPython FEMM 5.\nУдаляет пустой каталог.\nРезультат: None."
import pathlib
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
p=pathlib.Path(work)/'empty'
p.mkdir()
p.rmdir()
assert not p.exists()
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
pathlib.Path.globМетод установлен, но зависит от отсутствующего os.ilistdir. Рабочая альтернатива — glob.glob/glob.iglob.
pathlib.Path.glob
path.glob(pattern)Метод установлен, но зависит от отсутствующего os.ilistdir. Рабочая альтернатива — glob.glob/glob.iglob.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
pattern | Один шаблон с ровно одним *; ? и несколько * не поддержаны. |
Возвращаемое значение
Генератор Path; в этой сборке перебор вызывает AttributeError.
Пример
"Пример pathlib.Path.glob.\nСреда: встроенный MicroPython FEMM 5.\nМетод установлен, но зависит от отсутствующего os.ilistdir. Рабочая альтернатива — glob.glob/glob.iglob.\nРезультат: Генератор Path; в этой сборке перебор вызывает AttributeError."
import pathlib
try:
list(pathlib.Path('.').glob('*.fem'))
except AttributeError:
pass
else:
raise AssertionError('expected absent os.ilistdir')
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Нативная проверка описанного ограничения выполнена; ожидаемая ошибка или особенность подтверждена.
pathlib.Path.rglobМетод установлен, но зависит от отсутствующего os.ilistdir. Рабочая альтернатива — glob.glob/glob.iglob.
pathlib.Path.rglob
path.rglob(pattern)Метод установлен, но зависит от отсутствующего os.ilistdir. Рабочая альтернатива — glob.glob/glob.iglob.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
pattern | Один шаблон с ровно одним *; ? и несколько * не поддержаны. |
Возвращаемое значение
Генератор Path; в этой сборке перебор вызывает AttributeError.
Пример
"Пример pathlib.Path.rglob.\nСреда: встроенный MicroPython FEMM 5.\nМетод установлен, но зависит от отсутствующего os.ilistdir. Рабочая альтернатива — glob.glob/glob.iglob.\nРезультат: Генератор Path; в этой сборке перебор вызывает AttributeError."
import pathlib
try:
list(pathlib.Path('.').rglob('*.fem'))
except AttributeError:
pass
else:
raise AssertionError('expected absent os.ilistdir')
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Нативная проверка описанного ограничения выполнена; ожидаемая ошибка или особенность подтверждена.
pathlib.Path.expanduserЗаменяет начальный ~/ на HOME; форма ~username вызывает RuntimeError.
pathlib.Path.expanduser
path.expanduser()Заменяет начальный ~/ на HOME; форма ~username вызывает RuntimeError.
Аргументы
Аргументы не требуются.
Возвращаемое значение
Path с раскрытым ~, если HOME задан.
Пример
"Пример pathlib.Path.expanduser.\nСреда: встроенный MicroPython FEMM 5.\nЗаменяет начальный ~/ на HOME; форма ~username вызывает RuntimeError.\nРезультат: Path с раскрытым ~, если HOME задан."
import pathlib
assert str(pathlib.Path('results').expanduser()) == 'results'
Ожидаемый результат. Проверки assert проходят без исключения.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
Имена в установленной сборке
Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.