Python - E/S de arquivos
Este capítulo cobre todas as funções básicas de E/S disponíveis em Python. Para mais funções, consulte a documentação padrão do Python.
Impressão na tela
A maneira mais simples de produzir saída é usando a função print onde você pode passar zero ou mais expressões separadas por vírgulas. Esta função converte as expressões que você passa em uma string e grava o resultado na saída padrão da seguinte forma −
Demonstração ao vivo
#!/usr/bin/python print "Python is really a great language,", "isn't it?"
Isso produz o seguinte resultado em sua tela padrão -
Python is really a great language, isn't it?
Leitura da entrada do teclado
O Python fornece duas funções internas para ler uma linha de texto da entrada padrão, que por padrão vem do teclado. Essas funções são -
- raw_input
- entrada
O raw_input Função
O raw_input([prompt]) A função lê uma linha da entrada padrão e a retorna como uma string (removendo a nova linha à direita).
#!/usr/bin/python str = raw_input("Enter your input: ") print "Received input is : ", str
Isso solicita que você insira qualquer string e exibiria a mesma string na tela. Quando digitei "Hello Python!", sua saída é assim -
Enter your input: Hello Python Received input is : Hello Python
A entrada Função
A entrada([prompt]) A função é equivalente a raw_input, exceto que assume que a entrada é uma expressão Python válida e retorna o resultado avaliado para você.
#!/usr/bin/python str = input("Enter your input: ") print "Received input is : ", str
Isso produziria o seguinte resultado em relação à entrada inserida -
Enter your input: [x*5 for x in range(2,10,2)] Recieved input is : [10, 20, 30, 40]
Abrindo e fechando arquivos
Até agora, você estava lendo e gravando na entrada e saída padrão. Agora, veremos como usar arquivos de dados reais.
Python fornece funções e métodos básicos necessários para manipular arquivos por padrão. Você pode fazer a maior parte da manipulação de arquivos usando um arquivo objeto.
A abertura Função
Antes de poder ler ou escrever um arquivo, você precisa abri-lo usando o open() embutido do Python função. Esta função cria um arquivo objeto, que seria utilizado para chamar outros métodos de suporte associados a ele.
Sintaxe
file object = open(file_name [, access_mode][, buffering])
Aqui estão os detalhes do parâmetro -
-
nome_arquivo − O argumento file_name é um valor de string que contém o nome do arquivo que você deseja acessar.
-
modo_acesso − O access_mode determina o modo no qual o arquivo deve ser aberto, ou seja, ler, escrever, anexar, etc. Uma lista completa de valores possíveis é fornecida abaixo na tabela. Este é um parâmetro opcional e o modo de acesso ao arquivo padrão é lido (r).
-
buffer − Se o valor de buffer for definido como 0, nenhum buffer será realizado. Se o valor de buffer for 1, o buffer de linha será executado ao acessar um arquivo. Se você especificar o valor de buffer como um número inteiro maior que 1, a ação de buffer será executada com o tamanho de buffer indicado. Se negativo, o tamanho do buffer é o padrão do sistema (comportamento padrão).
Aqui está uma lista dos diferentes modos de abrir um arquivo -
Nº Sr. | Modos e descrição |
---|---|
1 | r Abre um arquivo somente para leitura. O ponteiro do arquivo é colocado no início do arquivo. Este é o modo padrão. |
2 | rb Abre um arquivo para leitura somente em formato binário. O ponteiro do arquivo é colocado no início do arquivo. Este é o modo padrão. |
3 | r+ Abre um arquivo para leitura e escrita. O ponteiro de arquivo colocado no início do arquivo. |
4 | rb+ Abre um arquivo para leitura e escrita em formato binário. O ponteiro de arquivo colocado no início do arquivo. |
5 | s Abre um arquivo somente para gravação. Substitui o arquivo se o arquivo existir. Se o arquivo não existir, cria um novo arquivo para gravação. |
6 | wb Abre um arquivo para escrita somente em formato binário. Substitui o arquivo se o arquivo existir. Se o arquivo não existir, cria um novo arquivo para gravação. |
7 | w+ Abre um arquivo para escrita e leitura. Substitui o arquivo existente se o arquivo existir. Se o arquivo não existir, cria um novo arquivo para leitura e escrita. |
8 | wb+ Abre um arquivo para escrita e leitura em formato binário. Substitui o arquivo existente se o arquivo existir. Se o arquivo não existir, cria um novo arquivo para leitura e escrita. |
9 | um Abre um arquivo para anexar. O ponteiro de arquivo está no final do arquivo se o arquivo existir. Ou seja, o arquivo está no modo de acréscimo. Se o arquivo não existir, ele cria um novo arquivo para gravação. |
10 | ab Abre um arquivo para anexar em formato binário. O ponteiro de arquivo está no final do arquivo se o arquivo existir. Ou seja, o arquivo está no modo de acréscimo. Se o arquivo não existir, ele cria um novo arquivo para gravação. |
11 | a+ Abre um arquivo para anexação e leitura. O ponteiro de arquivo está no final do arquivo se o arquivo existir. O arquivo é aberto no modo de acréscimo. Se o arquivo não existir, ele cria um novo arquivo para leitura e escrita. |
12 | ab+ Abre um arquivo para anexação e leitura em formato binário. O ponteiro de arquivo está no final do arquivo se o arquivo existir. O arquivo é aberto no modo de acréscimo. Se o arquivo não existir, ele cria um novo arquivo para leitura e escrita. |
O arquivo Atributos do objeto
Quando um arquivo é aberto e você tem um arquivo objeto, você pode obter várias informações relacionadas a esse arquivo.
Aqui está uma lista de todos os atributos relacionados ao objeto de arquivo -
Nº Sr. | Atributo e descrição |
---|---|
1 | arquivo.fechado Retorna true se o arquivo estiver fechado, false caso contrário. |
2 | arquivo.modo Retorna o modo de acesso com o qual o arquivo foi aberto. |
3 | arquivo.nome Retorna o nome do arquivo. |
4 | arquivo.softspace Retorna false se o espaço for explicitamente necessário com print, true caso contrário. |
Exemplo
Demonstração ao vivo#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name print "Closed or not : ", fo.closed print "Opening mode : ", fo.mode print "Softspace flag : ", fo.softspace
Isso produz o seguinte resultado -
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
O fechar() Método
O método close() de um arquivo object libera todas as informações não escritas e fecha o objeto de arquivo, após o qual não é mais possível escrever.
O Python fecha automaticamente um arquivo quando o objeto de referência de um arquivo é reatribuído a outro arquivo. É uma boa prática usar o método close() para fechar um arquivo.
Sintaxe
fileObject.close()
Exemplo
Demonstração ao vivo#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name # Close opend file fo.close()
Isso produz o seguinte resultado -
Name of the file: foo.txt
Ler e gravar arquivos
O arquivo O objeto fornece um conjunto de métodos de acesso para facilitar nossas vidas. Veríamos como usar read() e escrever() métodos para ler e gravar arquivos.
A escrita() Método
O escrever() O método grava qualquer string em um arquivo aberto. É importante observar que as strings do Python podem ter dados binários e não apenas texto.
O método write() não adiciona um caractere de nova linha ('\n') ao final da string −
Sintaxe
fileObject.write(string)
Aqui, o parâmetro passado é o conteúdo a ser escrito no arquivo aberto.
Exemplo
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close()
O método acima criaria foo.txt arquivo e escreveria determinado conteúdo nesse arquivo e, finalmente, fecharia esse arquivo. Se você abrir este arquivo, ele terá o seguinte conteúdo.
Python is a great language. Yeah its great!!
A ler() Método
O ler() O método lê uma string de um arquivo aberto. É importante notar que as strings do Python podem ter dados binários. além dos dados de texto.
Sintaxe
fileObject.read([count])
Aqui, o parâmetro passado é o número de bytes a serem lidos do arquivo aberto. Este método começa a ler desde o início do arquivo e se count está faltando, então ele tenta ler o máximo possível, talvez até o final do arquivo.
Exemplo
Vamos pegar um arquivo foo.txt , que criamos acima.
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10); print "Read String is : ", str # Close opend file fo.close()
Isso produz o seguinte resultado -
Read String is : Python is
Posições do arquivo
O dizer() O método informa a posição atual dentro do arquivo; em outras palavras, a próxima leitura ou gravação ocorrerá com essa quantidade de bytes desde o início do arquivo.
O procurar(deslocamento[, de]) O método altera a posição atual do arquivo. O deslocamento argumento indica o número de bytes a serem movidos. O de O argumento especifica a posição de referência de onde os bytes devem ser movidos.
Se de for definido como 0, significa usar o início do arquivo como a posição de referência e 1 significa usar a posição atual como a posição de referência e, se for definido como 2, o final do arquivo será tomado como a posição de referência.
Exemplo
Vamos pegar um arquivo foo.txt , que criamos acima.
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10) print "Read String is : ", str # Check current position position = fo.tell() print "Current file position : ", position # Reposition pointer at the beginning once again position = fo.seek(0, 0); str = fo.read(10) print "Again read String is : ", str # Close opend file fo.close()
Isso produz o seguinte resultado -
Read String is : Python is Current file position : 10 Again read String is : Python is
Renomeando e excluindo arquivos
Python os O módulo fornece métodos que ajudam a executar operações de processamento de arquivos, como renomear e excluir arquivos.
Para usar este módulo você precisa importá-lo primeiro e então você pode chamar qualquer função relacionada.
O método rename()
O renomear() O método recebe dois argumentos, o nome do arquivo atual e o novo nome do arquivo.
Sintaxe
os.rename(current_file_name, new_file_name)
Exemplo
A seguir está o exemplo para renomear um arquivo existente test1.txt −
#!/usr/bin/python import os # Rename a file from test1.txt to test2.txt os.rename( "test1.txt", "test2.txt" )
O remover() Método
Você pode usar remover() método para excluir arquivos fornecendo o nome do arquivo a ser excluído como argumento.
Sintaxe
os.remove(file_name)
Exemplo
A seguir está o exemplo para excluir um arquivo existente test2.txt −
#!/usr/bin/python import os # Delete file test2.txt os.remove("text2.txt")
Diretórios em Python
Todos os arquivos estão contidos em vários diretórios, e o Python também não tem problemas em lidar com eles. Os os O módulo tem vários métodos que ajudam a criar, remover e alterar diretórios.
O mkdir() Método
Você pode usar o mkdir() método do os módulo para criar diretórios no diretório atual. Você precisa fornecer um argumento para este método que contém o nome do diretório a ser criado.
Sintaxe
os.mkdir("newdir")
Exemplo
A seguir está o exemplo para criar um diretório test no diretório atual -
#!/usr/bin/python import os # Create a directory "test" os.mkdir("test")
O chdir() Método
Você pode usar o chdir() método para alterar o diretório atual. O método chdir() recebe um argumento, que é o nome do diretório que você deseja tornar o diretório atual.
Sintaxe
os.chdir("newdir")
Exemplo
A seguir está o exemplo para entrar no diretório "/home/newdir" -
#!/usr/bin/python import os # Changing a directory to "/home/newdir" os.chdir("/home/newdir")
O getcwd() Método
O getcwd() método exibe o diretório de trabalho atual.
Sintaxe
os.getcwd()
Exemplo
A seguir está o exemplo para fornecer o diretório atual -
#!/usr/bin/python import os # This would give location of the current directory os.getcwd()
O rmdir() Método
O rmdir() O método exclui o diretório, que é passado como argumento no método.
Antes de remover um diretório, todo o seu conteúdo deve ser removido.
Sintaxe
os.rmdir('dirname')
Exemplo
A seguir está o exemplo para remover o diretório "/tmp/test". É necessário fornecer o nome totalmente qualificado do diretório, caso contrário, ele procurará esse diretório no diretório atual.
#!/usr/bin/python import os # This would remove "/tmp/test" directory. os.rmdir( "/tmp/test" )
Métodos relacionados a arquivos e diretórios
Existem três fontes importantes, que fornecem uma ampla gama de métodos utilitários para manipular e manipular arquivos e diretórios nos sistemas operacionais Windows e Unix. Eles são os seguintes -
-
Métodos de objeto de arquivo:O arquivo objeto fornece funções para manipular arquivos.
-
Métodos de objetos do SO:Fornece métodos para processar arquivos e diretórios.
python
- C Entrada Saída (E/S)
- C Manipulação de Arquivos
- Entrada, Saída e Importação do Python
- E/S de arquivo Python
- Gerenciamento de diretórios e arquivos Python
- Python verifica se o arquivo existe | Como verificar se existe um diretório em Python
- C - E/S de arquivo
- C - Arquivos de cabeçalho
- Arquivos e fluxos C++
- C# - E/S de arquivo