Índice:

Sincronizando pastas com Python: 5 etapas
Sincronizando pastas com Python: 5 etapas

Vídeo: Sincronizando pastas com Python: 5 etapas

Vídeo: Sincronizando pastas com Python: 5 etapas
Vídeo: Súper consejo #shorts 2024, Novembro
Anonim
Sincronizando pastas com Python
Sincronizando pastas com Python
Sincronizando pastas com Python
Sincronizando pastas com Python

Este instrutível mostrará como manter duas pastas (e todas as pastas dentro delas) em sincronia para que uma seja uma cópia direta da outra. Ideal para backup de trabalho localmente, em um servidor de nuvem / rede ou em uma unidade USB. Nenhuma experiência com programação é necessária para concluir este tutorial. Observe que isso só funciona com o Windows, embora o processo seja semelhante no Mac e Linux.

Eu tenho um computador Windows antigo que configurei atuando como um servidor para várias funções, uma das quais é um armazenamento conectado à rede barato que atua como um servidor de mídia e backup de todos os dados do computador da minha família.

Como minha família gosta de trabalhar localmente em seus PCs, precisávamos de uma maneira fácil de fazer backup de nossos dados regularmente. Eu também precisava de uma maneira de dobrar o backup, implementando uma abordagem do tipo RAID em dois discos rígidos no PC do servidor. Eu também não queria pagar por nenhum software (sim, eu sei que sou mesquinho). Como conseqüência disso, todo software livre tende a vir com pop-ups ou até mesmo desacelerar o PC com longos tempos de sincronização e grande uso da CPU, o que era simplesmente irritante.

Portanto, com um pouco de esforço, escrevi um script Python que sincronizaria as pastas de que todos precisávamos. Eu poderia então personalizar e distribuir isso para a família como um executável que poderia definir o Windows para rodar regularmente em segundo plano. O usuário do computador não tinha que saber.

Etapa 1: Instalando Python e Dependências

Para criar o programa distribuível, você precisa instalar o python em seu computador. Para fazer isso, siga o link da web aqui https://www.python.org/downloads/ e role para baixo até encontrar a versão desejada. Nota: Infelizmente, enquanto escrevo, o módulo pyinstaller que usaremos ainda não funciona com o python 3.8, portanto, você precisará usar uma versão compatível do python (3.5-3.7).

Siga a instalação certificando-se de marcar a caixa de seleção "Adicionar ao PATH".

Depois de instalado, abra um prompt de comando e instale os módulos Python de que precisamos, para fazer este tipo o seguinte e prosseguir com os prompts conforme necessário:

pip install pyinstaller

pip install dirsync

Etapa 2: o script Python

O script é bom e simples, apenas duas linhas, copie e cole o seguinte no IDLE (instalado com Python) ou no bloco de notas e salve como "DirectorySync.py":

da sincronização de importação dirsync

sync ('C: / FOLDER_A', 'E: / FOLDER_B', 'sync', purge = True)

Certifique-se de alterar as duas pastas acima com as duas pastas que deseja sincronizar. A barra invertida dupla é necessária no nome do caminho, pois a barra invertida é um caractere de escape em Python.

A primeira linha importa o módulo dirsync que instalamos anteriormente.

O segundo executa a sincronização. A primeira pasta é a pasta de origem e a segunda é o destino, o 'sync' é o que diz à função de sincronização qual modo de sincronização implementar. Adicionar purge = True diz à função para excluir qualquer coisa na pasta de destino que não esteja mais na pasta de origem. Existem outras opções que podem ser implementadas de acordo com suas necessidades.

A forma como está configurado acima também sincronizará todas as pastas dentro da pasta de nível superior, isso pode ser interrompido se necessário. Se você deseja sincronizar mais de uma pasta de nível superior, basta adicionar mais linhas ao seu código com a função sync (). Para obter mais opções e ajuda, consulte o seguinte link:

pypi.python.org/pypi/dirsync/2.2.2

Etapa 3: Criando.exe

Para criar o executável, agora precisamos voltar ao prompt de comando.

Digite o seguinte substituindo o caminho da pasta pela rota para o script DirectorySync.py que criamos na última etapa:

pyinstaller -F -w C: /Route_to_your_folder/DirectorySync.py

Na localização da pasta do seu script python, isso cria uma série de pastas: _pycache_, build, dist e dois outros arquivos. Na pasta dist agora está um arquivo chamado DirectorySync.exe, executando-o executará a sincronização em segundo plano. Este arquivo pode ser distribuído como está para qualquer pessoa e eles podem então executar uma sincronização sem ter que ter o python instalado no computador.

Para explicar o que está acontecendo no texto em NEGRITO que foi digitado no prompt de comando:

'pyinstaller' diz ao computador para usar o módulo pyinstaller que baixamos anteriormente

'-F' é uma opção que diz ao pyinstaller para gerar apenas um executável e não uma série de pastas que também teriam que ser distribuídas.

'-w' é uma opção que diz ao computador para não exibir um prompt de comando toda vez que executa o script.

O caminho é o caminho para o script Python.

Para obter mais opções e ajuda, consulte o link abaixo:

pyinstaller.readthedocs.io/en/stable/usage…

Etapa 4: execução automática

Agora você está pronto para sincronizar qualquer pasta sem ter que copiar, colar e excluir repetidamente, apenas clicando duas vezes no executável. Mas queremos dar um passo além disso e fazer com que o Windows execute o processo automaticamente para que você não precise se preocupar.

Para fazer isso, usaremos o programa Task Scheduler que vem com o Windows, este processo é baseado no Windows 10, mas é quase idêntico em outras plataformas Windows.

  1. Abra o Agendador de tarefas no menu iniciar.
  2. No lado direito, selecione 'Criar Tarefa' no menu.
  3. Dê a ele um nome e uma descrição e, na parte inferior, verifique se ele está configurado para o sistema operacional correto.
  4. Na aba 'Triggers', crie um novo trigger clicando em 'Novo' no canto inferior esquerdo, no novo pop-up selecione a configuração que deseja, optei por iniciar a tarefa em Log on e repetir a cada hora então eu sei que tenho um backup do meu trabalho a cada hora. Clique OK.
  5. Na guia 'Ações', crie uma nova ação da mesma maneira. A ação de que precisamos é iniciar um programa que é o padrão. Navegue até o executável que criamos anteriormente e selecione. NOTA: - se você mover o executável após criar a tarefa, a tarefa e, portanto, a sincronização não será concluída.
  6. Na guia 'Condições', desmarque as configurações de energia para que funcione com bateria e também conectado.
  7. Clique em OK e você terá criado sua tarefa.

Reinicie o computador e depois de um tempo verifique o local da pasta de destino e veja se a sincronização funcionou. Observe que se você tiver uma pasta grande, a sincronização pode demorar um pouco para copiar todas as pastas pela primeira vez.

Esse é o tutorial completo, espero que seja útil, qualquer dúvida, me avise.

Etapa 5: ATUALIZAÇÃO 15 JAN 2020 - Programa de download

Ainda uso este programa que me serviu bem. No entanto, muitas pessoas me pedem para fazer um trabalho de sincronização para diferentes pastas manualmente, etc. Portanto, pensei em atualizar este Instructable com um link para um programa que criei para fazer o trabalho. Ele fornece uma interface de usuário para que as pessoas possam fazer facilmente um dos trabalhos de sincronização. O programa pode ser baixado do Github.

Recomendado: