FEMM 5

Модули и функции · встроенный MicroPython FEMM 5

shutil

Копирование, перенос и удаление рабочих файлов и каталогов.

Условия работы

shutil.copyfileЧитает данные блоками по 65536 байт. Копирует содержимое файла в файл назначения.

shutil.copyfile

copyfile(src, dst)

Читает данные блоками по 65536 байт. Копирует содержимое файла в файл назначения.

Аргументы

Аргументы вызова shutil.copyfile
ИмяНазначение и допустимые значения
srcСтрока пути исходного файла.
dstСтрока пути назначения; copy/copy2 также принимают каталог.

Возвращаемое значение

Строка итогового пути назначения.

Пример

MicroPython FEMM 5
"Пример shutil.copyfile.\nСреда: встроенный MicroPython FEMM 5.\nЧитает данные блоками по 65536 байт. Копирует содержимое файла в файл назначения.\nРезультат: Строка итогового пути назначения."

import shutil
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
src=work+'/source.txt'
with open(src,'w') as f:
    f.write('FEMM')
dst=work+'/copy.txt'
assert shutil.copyfile(src,dst) == dst
with open(dst) as f:
    assert f.read() == 'FEMM'

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

shutil.copyЧитает данные блоками по 65536 байт. Копирует файл; каталог назначения дополняется исходным именем.

shutil.copy

copy(src, dst)

Читает данные блоками по 65536 байт. Копирует файл; каталог назначения дополняется исходным именем.

Аргументы

Аргументы вызова shutil.copy
ИмяНазначение и допустимые значения
srcСтрока пути исходного файла.
dstСтрока пути назначения; copy/copy2 также принимают каталог.

Возвращаемое значение

Строка итогового пути назначения.

Пример

MicroPython FEMM 5
"Пример shutil.copy.\nСреда: встроенный MicroPython FEMM 5.\nЧитает данные блоками по 65536 байт. Копирует файл; каталог назначения дополняется исходным именем.\nРезультат: Строка итогового пути назначения."

import shutil
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
src=work+'/source.txt'
with open(src,'w') as f:
    f.write('FEMM')
dst=work+'/copy.txt'
assert shutil.copy(src,dst) == dst
with open(dst) as f:
    assert f.read() == 'FEMM'

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

shutil.copy2Читает данные блоками по 65536 байт. Копирует как copy, без переноса метаданных.

shutil.copy2

copy2(src, dst)

Читает данные блоками по 65536 байт. Копирует как copy, без переноса метаданных.

Аргументы

Аргументы вызова shutil.copy2
ИмяНазначение и допустимые значения
srcСтрока пути исходного файла.
dstСтрока пути назначения; copy/copy2 также принимают каталог.

Возвращаемое значение

Строка итогового пути назначения.

Пример

MicroPython FEMM 5
"Пример shutil.copy2.\nСреда: встроенный MicroPython FEMM 5.\nЧитает данные блоками по 65536 байт. Копирует как copy, без переноса метаданных.\nРезультат: Строка итогового пути назначения."

import shutil
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
src=work+'/source.txt'
with open(src,'w') as f:
    f.write('FEMM')
dst=work+'/copy.txt'
assert shutil.copy2(src,dst) == dst
with open(dst) as f:
    assert f.read() == 'FEMM'

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

shutil.copyfileobjКопирует от текущего положения потоков до конца источника.

shutil.copyfileobj

copyfileobj(src, dest, length=512)

Копирует от текущего положения потоков до конца источника.

Аргументы

Аргументы вызова shutil.copyfileobj
ИмяНазначение и допустимые значения
srcОткрытый поток чтения.
destОткрытый поток записи.
lengthРазмер блока копирования.

Возвращаемое значение

None.

Пример

MicroPython FEMM 5
"Пример shutil.copyfileobj.\nСреда: встроенный MicroPython FEMM 5.\nКопирует от текущего положения потоков до конца источника.\nРезультат: None."

import shutil
import io
a=io.BytesIO(b'FEMM')
b=io.BytesIO()
shutil.copyfileobj(a,b)
assert b.getvalue() == b'FEMM'

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

shutil.moveПробует rename; при ошибке копирует и удаляет источник.

shutil.move

move(src, dst)

Пробует rename; при ошибке копирует и удаляет источник.

Аргументы

Аргументы вызова shutil.move
ИмяНазначение и допустимые значения
srcПуть файла или каталога.
dstНовый путь либо каталог назначения.

Возвращаемое значение

Строка итогового пути.

Пример

MicroPython FEMM 5
"Пример shutil.move.\nСреда: встроенный MicroPython FEMM 5.\nПробует rename; при ошибке копирует и удаляет источник.\nРезультат: Строка итогового пути."

import shutil
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
src=work+'/source.txt'
with open(src,'w') as f:
    f.write('FEMM')
dst=work+'/moved.txt'
shutil.move(src,dst)
assert os.path.isfile(dst) and not os.path.exists(src)

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

shutil.copytreeРекурсивно копирует содержимое; существующие одноимённые файлы назначения перезаписываются.

shutil.copytree

copytree(src, dst)

Рекурсивно копирует содержимое; существующие одноимённые файлы назначения перезаписываются.

Аргументы

Аргументы вызова shutil.copytree
ИмяНазначение и допустимые значения
srcИсходный каталог.
dstКаталог назначения; может быть создан.

Возвращаемое значение

Строка dst.

Пример

MicroPython FEMM 5
"Пример shutil.copytree.\nСреда: встроенный MicroPython FEMM 5.\nРекурсивно копирует содержимое; существующие одноимённые файлы назначения перезаписываются.\nРезультат: Строка dst."

import shutil
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
src=work+'/src'
os.mkdir(src)
with open(src+'/a.txt','w') as f:
    f.write('FEMM')
dst=work+'/dst'
shutil.copytree(src,dst)
assert os.path.isfile(dst+'/a.txt')

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

shutil.rmtreeРекурсивно удаляет файлы и каталоги. В примере удаляется только свежесозданная папка.

shutil.rmtree

rmtree(path)

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

Аргументы

Аргументы вызова shutil.rmtree
ИмяНазначение и допустимые значения
pathНепустая строка пути дерева, которое требуется удалить.

Возвращаемое значение

None.

Пример

MicroPython FEMM 5
"Пример shutil.rmtree.\nСреда: встроенный MicroPython FEMM 5.\nРекурсивно удаляет файлы и каталоги. В примере удаляется только свежесозданная папка.\nРезультат: None."

import shutil
import os
import tempfile
work=tempfile.mkdtemp(prefix='femm-doc-',dir='.')
child=work+'/discard'
os.mkdir(child)
with open(child+'/a.txt','w') as f:
    f.write('demo')
shutil.rmtree(child)
assert not os.path.exists(child)

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

shutil.disk_usageВызов установленного API пока не даёт данных о ёмкости диска.

shutil.disk_usage

disk_usage(path)

Вызов установленного API пока не даёт данных о ёмкости диска.

Аргументы

Аргументы вызова shutil.disk_usage
ИмяНазначение и допустимые значения
pathПуть диска/каталога.

Возвращаемое значение

В этой сборке AttributeError из-за отсутствующего os.statvfs.

Пример

MicroPython FEMM 5
"Пример shutil.disk_usage.\nСреда: встроенный MicroPython FEMM 5.\nВызов установленного API пока не даёт данных о ёмкости диска.\nРезультат: В этой сборке AttributeError из-за отсутствующего os.statvfs."

import shutil
try:
    shutil.disk_usage('.')
except AttributeError:
    pass
else:
    raise AssertionError('expected absent os.statvfs')

Ожидаемый результат. Проверки assert проходят без исключения.

Скачать пример · Ссылка на функцию

Нативная проверка описанного ограничения выполнена; ожидаемая ошибка или особенность подтверждена.

Имена в установленной сборке

Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.