Manipulação de arquivos com o módulo OS

Além do objeto File retornado por open(), as operações de E / S de arquivo também podem ser executadas usando a biblioteca interna do Python, que possui um módulo de sistema operacional que fornece funções dependentes do sistema operacional úteis. Essas funções executam operações de leitura / gravação de baixo nível no arquivo.

o open()A função do módulo OS é semelhante ao open () embutido. No entanto, ele não retorna um objeto de arquivo, mas um descritor de arquivo, um número inteiro exclusivo correspondente ao arquivo aberto. Os valores 0, 1 e 2 do descritor de arquivo representam streams stdin, stdout e stderr. Outros arquivos receberão um descritor de arquivo incremental de 2 em diante.

Como no caso de open() função embutida, os.open()A função também precisa especificar o modo de acesso ao arquivo. A tabela a seguir lista vários modos, conforme definido no módulo os.

Sr. Não. Módulo OS e descrição
1

os.O_RDONLY

Aberto apenas para leitura

2

os.O_WRONLY

Aberto apenas para escrita

3

os.O_RDWR

Aberto para leitura e escrita

4

os.O_NONBLOCK

Não bloqueie ao abrir

5

os.O_APPEND

Anexar em cada gravação

6

os.O_CREAT

Criar arquivo se ele não existir

7

os.O_TRUNC

Truncar tamanho para 0

8

os.O_EXCL

Erro se criar e o arquivo existir

Para abrir um novo arquivo para gravar dados nele, especifique O_WRONLY assim como O_CREATmodos, inserindo o operador pipe (|). A função os.open () retorna um descritor de arquivo.

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

Observe que os dados são gravados no arquivo de disco na forma de string de bytes. Portanto, uma string normal é convertida em string de bytes usando a função encode () como anteriormente.

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

A função write () no módulo os aceita esta string de bytes e o descritor de arquivo.

os.write(f,data)

Não se esqueça de fechar o arquivo usando a função close ().

os.close(f)

Para ler o conteúdo de um arquivo usando a função os.read (), use as seguintes instruções:

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

Observe que a função os.read () precisa do descritor de arquivo e do número de bytes a serem lidos (comprimento da string de bytes).

Se você deseja abrir um arquivo para operações simultâneas de leitura / gravação, use o modo O_RDWR. A tabela a seguir mostra funções importantes relacionadas à operação de arquivo no módulo OS.

Sr. Não Funções e descrição
1

os.close(fd)

Feche o descritor de arquivo.

2

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

Abra o arquivo e defina vários sinalizadores de acordo com os sinalizadores e, possivelmente, seu modo de acordo com o modo.

3

os.read(fd, n)

Leia no máximo n bytes do descritor de arquivo fd. Retorna uma string contendo os bytes lidos. Se o final do arquivo referido por fd foi alcançado, uma string vazia é retornada.

4

os.write(fd, str)

Escreva a string str no descritor de arquivo fd. Retorna o número de bytes realmente gravados.