Manipulação de arquivos¶
Monitore seu sistema de arquivos quanto a novos arquivos, compacte e descompacte arquivos e pastas usando nosso novo plugin de arquivos.
Instalação¶
Importando o Plugin¶
Depois de instalar este pacote, a próxima etapa é importar o pacote para o seu código e começar a usar as funções.
Trabalhando com arquivos ZIP¶
Com este plugin, você pode facilmente zipar e descompactar pastas e arquivos, conforme necessário.
Usando arquivos específicos¶
Usando pastas inteiras¶
Também podemos criar um arquivo zip contendo todo o conteúdo do diretório especificado, incluindo arquivos e subpastas.
Descompactando Arquivos¶
É possível descompactar apenas um arquivo específico ou todo o conteúdo de um arquivo zip.
# Instancie o plugin
arquivos = BotFilesPlugin()
# Descompactando todo o conteúdo de "meu_zip" e salvando para a pasta "conteudo_zip"
arquivos.unzip_all(zip_file="meu_zip.zip", destination_folder="arquivos/conteudo_zip")
# Descompactando apenas um único arquivo contido em "meu_zip"
arquivos.unzip_file(zip_file="meu_zip.zip", file_to_extract="imagem.png")
Aguardando arquivos¶
Em alguns casos é necessário aguardar que os arquivos sejam salvos e disponíbilizados em determinadas pastas, como processos em que os arquivos são baixados de um site.
Nesses casos, podemos não saber exatamente o nome e o caminho do arquivo que serão baixados, tornando o processo de aguardar pelo arquivo mais complicado. Além disso, ao trabalhar com arquivos grandes, podemos não saber exatamente quanto tempo leva para aguardar o arquivo, afetando o restante do processo.
Com isso em mente, o método wait_for_file
oferece uma maneira de aguardar um novo arquivo sem nenhuma dificuldade.
É possível monitorar uma pasta de destino através de um gerenciador de contexto (context manager)
até que um novo arquivo seja completamente criado ou modificado.
from botcity.plugins.files import BotFilesPlugin
from botcity.web import WebBot
...
# Instanciando o webbot
bot = WebBot()
# Configurando o navegador padrão
bot.browser = Browser.FIREFOX
# Configurando o WebDriver
bot.driver_path = r"geckodriver.exe"
# Instanciando o plugin
arquivos = BotFilesPlugin()
# Acessando uma página da web através do webbot
bot.browse("https://filesamples.com/formats/bin")
# Aguardando um novo arquivo ".bin" a ser salvo na pasta "downloads"
with arquivos.wait_for_file(
directory_path="documentos/downloads",
file_extension=".bin",
timeout=300000):
print("\nBaixando arquivo...")
# Clicando para começar o download
if bot.find(label="download_file", matching=0.97, waiting_time=10000):
bot.click()
# Continuando o processo depois de esperar pelo arquivo
print("\ndownload concluído, continuando o processo...")
# Obtendo o caminho completo do mais novo arquivo ".bin" na pasta "downloads"
caminho_arquivo = arquivos.get_last_created_file(
directory_path="documentos/downloads",
file_extension=".bin")
...