Библиотеки os и io
Получайте доступ к системному времени, переменным окружения, файловой системе и стандартным потокам ввода и вывода.
«Библиотеки os и io» — бесплатный урок Lua Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Lua Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Lua Academy содержит 4 уроков всего.
Обзор модуля os
Модуль os предоставляет доступ к функциям операционной системы: времени, дате, переменным окружения, управлению процессами и операциям с файловой системой.
os.time и os.clock
os.time() возвращает текущее время в виде метки времени Unix. os.clock() возвращает процессорное время, использованное программой, — это полезно для измерения производительности.
local t0 = os.clock()
for i = 1, 1e6 do end
print(("%.4f sec CPU"):format(os.clock() - t0))os.date
os.date(format, time) форматирует метку времени. Используйте "*t", чтобы получить таблицу с полями года, месяца, дня, часа, минуты и секунды.
print(os.date("%Y-%m-%d %H:%M:%S")) -- 2025-01-15 14:30:00
local d = os.date("*t")
print(d.year, d.month, d.day)os.getenv
os.getenv(name) считывает переменную окружения. Если переменная не задана, возвращается nil.
local path = os.getenv("PATH")
print(path and path:sub(1, 50) or "not set")os.execute и os.exit
os.execute(cmd) выполняет команду оболочки и возвращает код завершения. os.exit(code) завершает процесс.
local ok = os.execute("echo hello")
print("exit status:", ok)os.rename и os.remove
os.rename(old, new) переименовывает или перемещает файл. os.remove(path) удаляет файл или пустой каталог. В случае ошибки обе функции возвращают nil и сообщение об ошибке.
Обзор модуля io
Модуль io предоставляет средства ввода-вывода файлов. Файлы открываются с помощью io.open, читаются с помощью file:read, а записываются с помощью file:write.
io.lines
io.lines(filename) возвращает итератор по строкам файла. После завершения файл закрывается автоматически.
for line in io.lines("data.txt") do
print(line)
endio.read из стандартного ввода
io.read() считывает строку из стандартного ввода. io.read("*n") считывает число, а io.read("*a") — весь стандартный ввод.
io.write("Enter name: ")
local name = io.read()
print("Hello, " .. name)io.popen
io.popen(cmd, mode) открывает канал к команде оболочки или от неё. Читайте вывод команды как из файлового дескриптора.
local f = io.popen("date")
local date = f:read("*l")
f:close()
print(date)stdin, stdout, stderr
io.stdin, io.stdout и io.stderr — предварительно открытые файловые дескрипторы стандартных потоков.
io.stderr:write("Error: something went wrong\n")Вопрос об os/io
Какая функция возвращает процессорное время, использованное программой?
Итоги: библиотеки os и io
Библиотека os отвечает за время, окружение, процессы и операции с файловой системой. Библиотека io отвечает за файловый ввод-вывод, каналы и стандартные потоки. Вместе они охватывают большинство задач взаимодействия с системой.
Часто задаваемые вопросы
Урок «Библиотеки os и io» бесплатный?
Да — полный текст урока «Библиотеки os и io» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Lua Academy, подпишись на CoddyKit PRO. Курс Lua Academy содержит 4 уроков всего.
Чему я научусь в уроке «Библиотеки os и io»?
Получайте доступ к системному времени, переменным окружения, файловой системе и стандартным потокам ввода и вывода. Ты практикуешь Lua Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Lua Academy?
Предыдущий опыт не требуется. Lua Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Библиотеки os и io»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Lua Academy?
Да. Каждый урок Lua Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Функции библиотеки math
- Функции библиотеки table
- Библиотеки os и io
- Библиотека debug