– Integração Python - Arquivos e Pastas do Computador – Python para Navegar no seu Computador - pathlib e shutil
Neste módulo do curso, vamos aprender como usar o Python para executar tarefas com os arquivos do computador.
Para executar essas operações temos 2 módulos possíveis:
• os (doc) ;
• pathlib (doc);
Antes de entendermos melhor sobre esses módulos é importante estar atento a um ponto. Nessa apostila, usaremos códigos que se referem ao WINDOWS, pois é o sistema operacional mais utilizado no mercado de trabalho. Caso, seu computador ou do seu trabalho use LINUX ou Apple e você decida usar o módulo os, fique atento a pequenos detalhes como a orientação de uma barra ou comando que podem influenciar no seu código ☺
Usaremos agora o pathlib, que essencialmente desempenha a mesma função do módulo os, mas é uma biblioteca mais recente e permite trabalhar com diferentes sistemas operacionais sem se preocupar com isso ☺.
Assim como todos as bibliotecas iniciamos seu uso importando-a no início do código.
Caso a importação não esteja ocorrendo lembre-se do pip install para fazer a instalação de pacotes, ou o pip freeze para consultar quais programas estão instalados no seu Python.
Após a importação, usaremos o método .cwd() nos retornara a pasta que estamos.
É bem comum que este caminho, seja armazenado em variáveis como apresentado no segundo exemplo com a variável caminho que recebe a localização da pasta “Arquivos_Lojas”.
from pathlib import Path
print(Path.cwd())
caminho = Path('C:\Users\jessi\Downloads\Arquivos_Lojas')
print(caminho)
______________________
C:\Users\jessi\Downloads\Arquivos_Lojas
Agora que sabemos o endereço da nossa pasta e o armazenamos na variável caminho, vamos acessar seu conteúdo.
Como nessa pasta, temos dezenas de arquivos, vamos utilizar um outro método chamado interdir(). Sua função é funcionar como uma espécie de For dentro da pasta iterando todos os arquivos existentes e gerando uma lista desses arquivos.
O resultado deste método é um objeto que posteriormente usaremos para o tratamento dos dados.
caminho = Path('C:\Users\jessi\Downloads\Arquivos_Lojas')
arquivos = caminho.iterdir()
print(arquivos)
______________________
A partir do objeto gerado pelo iterdir, podemos acessar essa lista utilizando o FOR. Assim como apresentado abaixo:
caminho = Path('C:\Users\jessi\Downloads\Arquivos_Lojas')
arquivos = caminho.iterdir()
for arquivo in arquivos:
print(arquivo)
No entanto, não é tão visual esse caminho com diversas pastas em sequência. Podemos ter o mesmo resultado usando um “caminho relativo”. Nesse caso, ao invés de fornecermos todo o endereço desde do “C:/.....” podemos apenas informar a nossa pasta de interesse. Como no exemplo abaixo:
caminho = Path('Arquivos_Lojas')
Utilizando o caminho relativo, a visualização é bem melhor e apesar de não afetar em nada o resultado final, facilita a compreensão durante a elaboração do código.
from pathlib import Path
caminho = Path('Arquivos_Lojas')
arquivos = caminho.iterdir()
for arquivo in arquivos:
print(arquivo)
– Verificando se um arquivo existe no Computador
Usando o interdir(), possível percorrer todos os arquivos de uma pasta.
Algumas vezes, não é necessário analisar todas as pastas e sim uma específica.
No exemplo ao lado, criamos uma condição que verifica se uma pasta específica existe. Essa verificação no python é feita através do método:
.exists().
Perceba que além do exists introduzimos uma nova forma de informar um Path.
Como já havia sido definido a variável caminho, podemos uni-la ao nome do arquivo desejado utilizando a estrutura caminho / nome do arquivo.
if (caminho / Path('201801_Amazonas Shopping_AM.csv')).exists():
print('Existe')
_________________
Existe
• caminho = Path('Arquivos_Lojas').
• Este sinal de barra não é uma string. Como os dois lados da expressão são PATHs a ‘/’ faz o papel de separador.
• .existis() Verifica no path informado se o arquivo '201801_Amazonas Shopping_AM.csv’ existe.
– Criando pastas e movimentando arquivos
Outra operação que podemos realizar é criar pastas através do Python.
Para isso, usaremos o método abaixo:
.mkdir()
Usando o PATH, podemos fornecer o local e o nome da pasta a ser criada.
Perceba na imagem ao lado, que ao olharmos a pasta arquivos_lojas após a execução do código, temos uma nova pasta criada a partir do mkdir()
Path('Pasta Auxiliar/Pasta2').mkdir()
• Cria a pasta ‘Pasta2’ dentro da pasta ‘Arquivo_Lojas’
Vamos considerar agora que queremos copiar o arquivo ‘Arquivos_Lojas/201801_Amazonas Shopping_AM.csv’ e enviá-lo para a pasta que criamos anteriormente. Apesar de ser possível realizar essa operação usando o pathlib, iremos usar outra biblioteca:
shutil (doc)
O método que usaremos para realizar a operação será o copy2 (doc), onde:
• O primeiro argumento será o arquivo que deve ser copiado;
• O segundo argumento é o local onde o arquivo será colado e com qual nome.
Perceba que no exemplo ao lado utilizamos 2 variáveis auxiliares para facilitar o desenvolvimento do código e entendimento.
import shutil
arquivo_copiar = Path('Arquivos_Lojas/201801_Amazonas Shopping_AM.csv')
arquivo_colar = Path('Pasta Auxiliar/201801_Amazonas Shopping_AM_versao2.csv')
shutil.copy2(arquivo_copiar, arquivo_colar)
_________________________
WindowsPath('Pasta Auxiliar/201801_Amazonas Shopping_AM_versao2.csv')
Outra operação muito comum, é movimentar um arquivo entre pastas. Para isso, usaremos mais um método da biblioteca shutil:
.move()
A estrutura é muito parecida com a anterior utilizada no shutil.copy2:
• Primeiro argumento será definido qual arquivo será movimentado;
• Segundo argumento para onde o arquivo será movimentado.
Diferentemente do copy2, podemos perceber que ao usarmos o método .move(), retiramos o arquivo da ‘Pasta2’ e o movimentamos para a pasta ‘Arquivos_Lojas’
shutil.move(Path('Pasta Auxiliar/201801_Amazonas Shopping_AM_versao2.csv'), Path('Pasta Auxiliar/Pasta2/201801_Amazonas Shopping_AM_versao2.csv'))
______________________________________
WindowsPath('Pasta Auxiliar/Pasta2/201801_Amazonas Shopping_AM_versao2.csv')
Nenhum comentário:
Postar um comentário