Обработка файлов с помощью модуля ОС

В дополнение к объекту File, возвращаемому open()функции, операции ввода-вывода файлов также могут выполняться с использованием встроенной библиотеки Python, имеющей модуль os, который предоставляет полезные функции, зависимые от операционной системы. Эти функции выполняют операции чтения / записи низкого уровня в файле.

В open()Функция из модуля os аналогична встроенной функции open (). Однако он возвращает не объект файла, а дескриптор файла, уникальное целое число, соответствующее открытому файлу. Значения 0, 1 и 2 дескриптора файла представляют потоки stdin, stdout и stderr. Остальным файлам будет присвоен инкрементный файловый дескриптор, начиная со 2-го.

Как и в случае с open() встроенная функция, os.open()функция также должна указать режим доступа к файлу. В следующей таблице перечислены различные режимы, определенные в модуле os.

Sr.No. Модуль ОС и описание
1

os.O_RDONLY

Только для чтения

2

os.O_WRONLY

Открыт только для записи

3

os.O_RDWR

Открыт для чтения и письма

4

os.O_NONBLOCK

Не блокировать при открытии

5

os.O_APPEND

Добавлять при каждой записи

6

os.O_CREAT

Создать файл, если он не существует

7

os.O_TRUNC

Обрезать размер до 0

8

os.O_EXCL

Ошибка, если создание и файл существует

Чтобы открыть новый файл для записи в него данных, укажите O_WRONLY так же как O_CREATрежимы, вставив оператор вертикальной черты (|). Функция os.open () возвращает дескриптор файла.

f=os.open("test.dat", os.O_WRONLY|os.O_CREAT)

Обратите внимание, что данные записываются в файл на диске в виде байтовой строки. Следовательно, обычная строка преобразуется в байтовую строку с помощью функции encode (), как и раньше.

data="Hello World".encode('utf-8')

Функция write () в модуле os принимает эту байтовую строку и файловый дескриптор.

os.write(f,data)

Не забудьте закрыть файл с помощью функции close ().

os.close(f)

Чтобы прочитать содержимое файла с помощью функции os.read (), используйте следующие операторы:

f=os.open("test.dat", os.O_RDONLY)
data=os.read(f,20)
print (data.decode('utf-8'))

Обратите внимание, что функции os.read () требуется дескриптор файла и количество байтов для чтения (длина байтовой строки).

Если вы хотите открыть файл для одновременных операций чтения / записи, используйте режим O_RDWR. В следующей таблице показаны важные функции, связанные с файловыми операциями в модуле ОС.

Старший Нет Функции и описание
1

os.close(fd)

Закройте дескриптор файла.

2

os.open(file, flags[, mode])

Откройте файл и установите различные флаги в соответствии с флагами и, возможно, его режим в соответствии с режимом.

3

os.read(fd, n)

Прочтите не более n байтов из файлового дескриптора fd. Вернуть строку, содержащую прочитанные байты. Если достигнут конец файла, на который указывает fd, возвращается пустая строка.

4

os.write(fd, str)

Запишите строку str в файловый дескриптор fd. Возвращает количество фактически записанных байтов.