Curso Básico de Python 2024 - Aula 9 - Projeto Final - Gerenciador de Backup
9.28k views7941 WordsCopy TextShare
Hashtag Programação
Quer saber mais sobre o nosso Curso Completo de Python? Clique no link abaixo para garantir sua vaga...
Video Transcript:
fala impressionador no vídeo de hoje eu quero construir um projeto completo com vocês em Python pra gente finalizar o nosso curso básico de Python e no projeto da aula de hoje a gente vai construir um criador de backup ele vai ser um sistema em que a gente vai rodar o código ele vai abrir uma janelinha pra gente e dessa janelinha a gente vai conseguir selecionar uma pasta qualquer do nosso computador e ele vai fazer automaticamente de forma muito rápida o backup dessa pasta e a gente você vai poder usar isso paraa situação que você quiser quero criar um novo projeto tal mas quero fazer um backup aqui roda o seu código faz o back automaticamente e pronto você pode seguir a sua vida Beleza então pra gente construir isso tudo na aula de hoje a gente vai precisar usar todos os conceitos que a gente foi aprendendo ao longo desse curso básico de Python Eu acho que vai ser super legal para vocês quem não assistiu o curso básico de Python quiser assistir o link da playlist tá aqui embaixo Mas se você quiser tentar fazer o projeto direto comigo pode tentar fazer também vamos lá vamos partir direto com conteúdo da aula de [Música] hoje bom galera se você gostou da ideia do vídeo já deixa o seu like aqui se inscreve no canal e Preste atenção nos links que vão estar na descrição primeiro link que vai est na descrição ele vai ser o link com todos os arquivos que a gente vai usar na aula de hoje para construir esse projeto vai ser importante você fazer o download e todos os gabaritos que a gente fez nesse curso básico de Python também o segundo link que eu vou deixar aqui na descrição é o link de um mini curso de completo de Python então se você quiser construir um outro projeto depois desse projeto daqui o minicurso que vai est aqui na descrição ele vai ser um minicurso construindo um novo projeto com vocês Pode ser que você tenha interesse por isso acessa lá e volta aqui pro vídeo ou então no final do vídeo pega ele lá e o terceiro link que eu vou deixar disponível aqui na descrição para vocês é o link do nosso curso completo de Python Python impressionador esse curso Ele não tem vagas abertas o tempo todo então pode ser que quando você entrar no link você seja jogado pra página da lista de espera Pode ser que quando você entrar no link você já seja jogado direto pra página de descrição do curso independente do caso preenche lá a lista de espera para você saber mais sobre o nosso curso completo de Python caso você tenha interesse em aprender absolutamente tudo que você precisa de Python para usar o Python pra sua realidade no mercado de trabalho seja para para automação para desenvolvimento de sites enfim pro seu objetivo Vamos partir agora pro nosso projeto galera vamos lá como eu falei para vocês o nosso projeto ele vai ser um projeto em que a gente vai usar a gente vai criar backups automaticamente Então a gente vai rodar o código vai selecionar uma qualquer parte do nosso computador ele vai conseguir fazer o backup pra gente ter uma pasta de modelo aqui na descrição vocês vão encontrar um arquivo que é a pasta códigos tá essa pasta códigos aqui Zip tá vendo vocês vão fazer o download dessa pasta códigos P Zip e quando vocês fizerem o download delas você vai chegar vai abrir a pasta código Zip e vai anzar ela vai tirar ela do Zip né então você vai pegar a pasta daqui vai tirar ela e por exemplo eu joguei ela paraa minha pasta download tá aqui ó códigos tá vendo e dentro dela a gente vai ter vários arquivos uma pasta arquivos e vários códigos em Python aqui tá bom então é só um exemplo de pasta pra gente conseguir trabalhar o nosso backup em cima dela e depois a gente vai eh você pode depois que seu código estiver todo pronto aí você pode usar esse mesmo código com outras PES do seu computador só não aconselho que durante o processo de criação da do nosso projeto você faça com uma pasta de arquivos importantes do teu computador porque vai que você roda algum código que edita alguma coisa que você não queria é bom sempre usar alguma pasta como exemplo E aí eu disponibilizei para vocês aqui embaixo tá bom E aí galera o que que a gente vai fazer a gente vai dividir esse a construção desse projeto em duas etapas a primeira etapa é a etapa da janela para selecionar a pasta do nosso computador então eu quero quando rodar o nosso código ele tem que abr uma janela pra gente selecionar a pasta que a gente vai fazer o backup a segunda etapa vai ser a etapa de então fazer o backup dos arquivos que estão nessa pasta Beleza então vai ser isso aqui que a gente vai precisar fazer E para isso a gente vai usar todos os conteúdos que a gente foi aprendendo ao longo aqui desse desse curso básico de Python Então vamos lá bom como que a gente vai fazer isso daqui para fazer isso galera a gente vai fazer o a gente vai precisar aqui de usar algumas bibliotecas do Python ou seja esses pacotes de código que o Python tem que facilitam a nossa vida a gente poderia fazer esse processo todo sem usar bibliotecas ou usando só uma biblioteca poderia só que ia ficar mais difícil a gente vai usar aqui essencialmente quatro bibliotecas do Python diferente que vão cada uma delas vai ajudar a gente para um objetivo específico tá então as bibliotecas que a gente vai usar aqui vão ser a biblioteca os que vai ser pra gente listar os arquivos que estão dentro da pasta que a gente quer fazer backup então isso aqui vai ser bem útil pra gente e a biblioteca da janela a que a gente vai usar para pegar a janela do nosso computador vai ser qual vai ser a biblioteca do TK Inter Beleza o TK Inter ele permite você criar janelas no seu computador seja você que criando uma janela personalizada ou então abrindo simplesmente aquela janelinha padrão do Windows do Mac enfim independente do computador que você estiver usando pro usuário selecionar um arquivo E como que você faz para abrir aquela janelinha padrão pro usuário selecionar um arquivo do TK Inter você importa um cara específico dele você não importa a biblioteca inteira do tkinter você importa o tkinter pfile dialog é esse cara aqui o file dialog que permite você usar as janelinhas padrões do computador de seleciona arquivo seleciona pasta e assim vai beleza E aí você poderia importar o tkinter dessa forma Import tkinter PF dialog e aí a funcionalidade dele para selecionar uma pasta do seu computador é o tkinter filedialog askdirectory Ask directory é que ele tá perguntando qual diretório qual pasta do computador o usuário quer abrir beleza essa aqui é a funcionalidade só que repar o seguinte para você não precisar escrever Import tkinter file dialog na hora de importar e na hora de usar tkinter PF dialogas directory O que você pode fazer se você quiser como essa aqui é a única funcionalidade de TK Inter que você quer usar você pode fazer assim from TK enter pfile dialog Import OAS directory por quê Porque aí agora ao invés de precisar escrever isso tudo quando você quiser usar o Ask directory você tá falando assim olha só do TK Inter file dialog desse cara então do tkinter pfile dialog importa só essa função aqui eu não quero ele todo eu quero só essa função Ask directory E aí agora na hora de usar você pode só botar aqui um directory E aí quando você rodar o código ele já vai abrir a janelinha para você poder selecionar uma pasta do seu computador tá vendo e aí você consegue selecionar a pasta que você quiser e Pronto agora vamos entender então isso daqui é o que você precisa para abrir uma janela para selecionar uma pasta do seu computador bem direto ao ponto foi por isso que eu falei para vocês na última aula quando a gente trabalhou com módulos e bibliotecas os módulos e bibliotecas do Python eles abrem muitas portas para vocês e eles tornam às vezes um processo que parece muito complexo e muito simples como usar uma linha de código E aí a coisa que a gente precisa entender aqui é que quando o usuário seleciona uma pasta essa pasta ela vem como resposta dessa função aqui ou seja vou armazenar a pasta que o usuário selecionou o nome da pasta né então is aqui vai ser o nome da pasta selecionada isso daqui vai ser o resultado do es directory tanto que se eu chegar aqui e der um print no nome da pasta selecionada pra gente visualizar ela olha só rodei o código agora vou selecionar a pasta códigos tá vendo pasta códigos que tá lá no nosso downlo que a gente colocou não é a pasta zipada é a pasta que você já tirou do Zip E aí quando eu rodar aqui olha lá o que que me dá como resposta C usuários João l downloads códigos tá vendo Então o nome da pasta é o nome completo da pasta tá vendo é a pasta toda junto tá vendo junto com o caminho inteiro da onde ela tá tá bom E aí com isso a gente consegue agora pegar todos os arquivos que estão ali dentro usando a biblioteca os a biblioteca os ela tem uma função que é a função list de list de é para listar o que tem dentro de um diretório então se eu passar aqui para ela o nome da pasta selecionada isso daqui vai ser a lista de arquivos que eu quero fazer backup são todos os arquivos que estão dentro da pasta códigos então a minha lista de arquivos da pasta códigos ela é os. list da pasta selecionada Se eu der um print aqui na minha lista de arquivos Olha lá qual vai ser o resultado que você vai visualizar vou selecionar minha pasta códigos aqui ó códigos aqui códigos rodei e ele diz ó a pasta códigos está selecionada e aqui embaixo todos os arquivos estão dentro da pasta códigos se eu abrir ela aqui no meu downloads Olha lá na minha pasta códigos tem a pasta arquivos que é a primeira coisa que ele printou aqui embaixo para mim ó arquivos e depois módulos py Wi py arquivos py funções py ão todos os arquivos aqui tá vendo Então já listou para mim todos os arquivos que eu tinha dentro da minha pasta aqui agora a gente tá pronto para começar a fazer esse backup beleza como que a gente vai fazer o backup desses arquivos que estão aqui na nossa lista arquivos a gente precisa percorrer todos os arquivos da pasta para eu fazer backup um a um por eles até porque presta atenção tem arquivo aqui que é arquivo Python tem arquivo aqui que é TXT mas tem arquivo aqui que não é um arquivo é uma pasta que eu tenho que fazer o backup Então essa pasta aqui dentro dela tem vários arquivos para fazer backup e dentro dela podem ter outras pastas e assim vai então eu quero criar um código que ele consiga fazer backup Independente se é um arquivo ou se é uma pasta que ele tá tentando fazer o backup beleza Então vamos lá Primeiro passo é a gente percorrer toda a nossa lista de arquivos pra gente poder fazer o backup nela Então como a gente vai percorrer esses arquivos para cada arquivo dentro da nossa lista de arquivos e eu vou printar Quem é esse arquivo aqui para você visualizar ele vamos lá rodar o código aqui rodei vou selecionar a nossa pasta agora de códigos de novo e vamos selecionar Olha lá a variável presta bem atenção nisso galera que agora V uma etapa muito importante para cada arquivo dentro da nossa lista de arquivos lista de arquivos são todos os arquivos que estão dentro da pasta selecionada só que repar o seguinte quando eu percorro a minha lista de arquivos e prto a variável arquivo a variável arquivo ela é o quê Ela é o nome do arquivo ela não vem junto com o nome da pasta da onde tá esse arquivo ele é só o nome do arquivo então se eu quiser o nome completo do arquivo ou seja o arquivo pon py junto com a pasta da onde ele tá que é a pasta selecionada eu tenho que concatenar essas duas informações concorda comigo por exemplo se eu quisesse pegar o caminho completo do arquivo condição ppy o caminho completo dele CC dois pontos usuários João l downloads códigos e aí sim condição ppy Elia ser esse caminho todo esse aqui que é o nome completo do nosso arquivo por que que eu preciso desse nome completo do arquivo Lira Porque como esse nosso código ele permite o usuário selecionar uma pasta em qualquer lugar do computador Sempre que você quiser acessar esse arquivo aqui seja para fazer uma cópia dele para fazer o backup dele sempre que você quis acessar esse arquivo aqui você precisa do nome completo dele pro seu código saber aonde ele tem que procurar então aqui dentro do nosso for eu vou criar uma variável que é o nome completo do arquivo e qual é o nome completo do arquivo é a pasta da onde o arquivo tá tá vendo a pasta códigos que é exatamente o que a gente printa antes Aqui tá vendo Então essa variável nome da pasta selecionada Então vai ser a variável nome da pasta selecionada com enado com barra condição ppy Então a gente vai concatenar esse texto com barra condição p py como que eu faço para juntar dois textos em Python tem algumas formas de fazer isso mas e repara condição ppy nada mais é do que o nome do arquivo essa variável o arquivo aqui então concatenado com a barra concatenado com a variável arquivo Então tá vendo eu tô querendo criar um texto que tem várias variáveis dentro do nome desse texto a forma mais eficiente da gente fazer isso é a gente criar um texto que esse texto ele vai ser o tã o caminho da pasta ó c dois pontos usuários João l códigos Eu caminho da pasta uma barra e o nome do arquivo nome do arquivo que a gente quer colocar aqui pon py sei lá entendeu esse valor aqui todo ele é uma variável esse valor aqui todo ele é o quê ele é o nome da pasta selecionada então eu vou substituir esse valor aqui todo por uma variável dentro do texto que é o nome da nossa pasta selecionada como eu tenho uma variável dentro do texto eu boto um fzin aqui antes tá vendo Então o nome da pasta selecionada nada mais é do que esse caminho todo aqui se usuário João l download códigos Beleza vou juntar isso com uma barra porque é dentro dessa pasta aqui que eu quero e vou juntar isso com o nome do arquivo Qual é o nome do arquivo nome do arquivo é a variável arquivo que a gente acabou de printar aqui ó ela é o arquivo os arquivos. py código ppy condição ppy dicionários ppy todos os arquivos estão dentro da pasta então isso aqui é o nome completo do arquivo quer ver se eu chegar aqui agora e ao invés de printar vou printar ainda a variável arquivo mas logo depois dela eu vou printar o nome completo do arquivo só pra gente poder visualizar como que vai ficar esse resultado todo então Ó vou rodar o código aqui vamos selecionar a nossa pasta de códigos selecionei e olha lá ele disse ó o arquivo arquivos o nome completo dele é usuário jo download código arquivos o o código o arquivo por exemplo forp ele é C usuário jo L download códigos for.
py então tá certo agora o nome completo do arquivo tá conseguindo pegar o local daquele arquivo da nossa pasta que que eu preciso fazer agora eu preciso pegar esse arquivo que tá aqui nesse local completo aqui né nesse local completo e criar uma cópia dele numa pasta backup E aí vamos escolher aonde a gente vai colocar essa pasta backup vamos lá eu vejo duas grandes opções a primeira opção é a pasta de backups fica dentro da própria pasta códigos aqui dentro a gente cria uma pasta backup e guarda os backups ali dentro me parece uma boa opção me parece uma boa opção outra opção é você colocar no mesmo local da pasta de códigos então tem aqui códigos do lado dela tem uma pasta códigos backup por exemplo eu vou preferir colocar dentro da pasta códigos por quê Porque pensa só Ah tô tô querendo fazer o backup de um arquivo de uma pasta que tá na minha área de trab eu fazer backup dessa parte da área de trabalho e eu criar outro arquivo na áa de trabalho depois se for movimentar uma dela ten que lembrar de movimentar o backup tudo mais é mais uma escol meso eu quer que o back fique dentro da nossa selecionada que é aa códigos e aqui dentro vai ter uma pasta chamada back então o nome da pasta nome nome da pasta back vai ser simplesmente backup e ela vai ficar dentro da pasta dentro da pasta selecionada tá vendo daa da pasta códigos então o nome dela vai ser esse aqui e o nome completo dela Olha que legal o nome completo da pasta backup vai ser o qu vai ser a mesma coisa que a gente fez aqui ele vai ser a nossa pasta selecionada junto com o nome da pasta backup tá vendo isso aqui é o nome completo da nossa pasta backup ou seja o local no nosso computador Aonde tá essa parte da backup eu disse que o nome dela era backup e ela vai ser criada dentro da nossa pasta selecionada Beleza então aqui a gente tem o nome completo da nossa pasta backup show de bola Então vamos pensar o seguinte aqui agora agora o que que a gente tem que fazer agora eu tenho que conseguir movimentar esse arquivo aqui que tem esse nome pasta selecionada barra Arquivo ele vai ter que sair desse local aqui e ele vai ter que vir pro local nome da pasta selecionada barra backup bar arquivo é para esse local que ele vai ter que ser construído não é a gente pode fazer isso por meio dessas variáveis aqui ou manualmente assim direto tá como eu já tenho aqui o nome completo da pasta backup eu vou usar esse cara daqui como variável ou seja o nosso nome completo do arquivo ele vai ter que como que você movimenta um arquivo dentro do seu computador eu ensinei isso para vocês na aula passada do curso básico de Python mas eu vou mostrar que falar aqui de novo basicamente você faz o seguinte se eu tiver um arquivo em usuário João l downloads e eu quero jogar ele para uma pasta backup dentro de download por exemplo eu tenho aqui o arquivo por exemplo Lira TXT esse aqui é o arquivo eu quero movimentar esse arquivo Como que você faz para movimentar ele você renomeia esse arquivo daqui você cria uma cópia dele no nosso caso aqui como é backup eu quero criar uma cópia você cria uma cópia dele nesse local aqui ó então o que você faz basicamente é renomear Ou seja você copia esse arquivo e cola ele com outro nome em outro com um outro nome e esse outro nome só tem uma pasta mais no meio do caminho então o que que que que é isso daqui eu tô pegando a pasta downloads o arquivo lir TXT que estava na pasta downloads e tô copiando ele criando uma cópia desse arquivo na pasta backup com l TXT que tá no mesmo lugar da pasta download beleza é isso aqui que a gente vai fazer agora então o nome completo do nosso arquivo era esse aqui e ele vai se tornar o nome completo da pasta backup que não tem esse barra backup aqui porque o nome completo da pasta backup já é colocando o Barra backup aqui do lado já é colocando isso daqui isso aqui é o nome completo da pasta backup tá vendo junto com o nome do arquivo Então esse aqui é o nome completo do arquivo original e esse aqui é o nome final por exemplo do arquivo então o arquivo ele vai sair daqui e vai vir para cá só que eu não vou como eu tô querendo criar um backup eu não vou pegar esse arquivo cortar ele dali e jogar para outro lugar eu vou pegar esse arquivo aqui vou copiar ele e vou colar aqui como que eu faço para copiar o arquivo de um lugar e colar no outro lugar a gente vai usar uma outra biblioteca do Python que é a biblioteca shutle ela já vem instalada no Python também biblioteca shutle Lira dava para fazer isso com a biblioteca os dá para fazer isso com a biblioteca os só que a Biblioteca Shut ela tem algumas vantagens pra gente primeiro que ela tem mais flexibilidade na hora de copiar ela consegue copiar arquivos ela consegue copiar pastas com todo o conteúdo que tá dentro daquela pasta ela e além disso ela consegue verificar se a pasta destino que você tá aonde você tá querendo copiar existe ou não E se não existir ela cria automaticamente Como assim Lira por exemplo aqui no nosso caso esse aqui vai ser o nome original e esse aqui é o nome final do nosso arquivo né que eu tô querendo copiar ele daqui e colar ele na pasta da backup a biblioteca shutle ela tem uma função que é a função shutle pcy to que é copiar para né copy to né copiar para e é to dois mesmo que você coloca aí você coloca aqui o nome original do arquivo que a gente colocou E aqui depois o nome final do arquivo o nome final do arquivo E aí ele vai pegar esse esse arquivo aqui nome completo do arquivo e vai colar ele com o nome final do arquivo nesse local aqui quer ver vamos rodar esse código aqui e vamos visualizar o que o que vai acontecer repara eu não criei dentro da minha pasta códigos Até agora nenhuma pasta chamada backup tá vendo não Criei uma pasta chamada backup mas eu vou pegar esse código aqui e vou rodar rodei esse código aqui ele vai mandar selecionar a minha pasta códigos lá no downloads ó selecionar a pasta códigos selecionar selecionei beleza ele me deu um erro aqui tã norment porque eu tô com essa pasta aberta aqui Ah já sei até o que que foi o erro beleza o que que foi esse erro que ele deu Aqui ó esse copy to ele funciona para copiar arquivos lembra que eu falei com vocês a gente vai ter que copiar arquivos mas a gente vai ter que copiar pastas do nosso computador também esse copy to ele funciona para copiar arquivos ele não consegue copiar pastas a gente vai ver como a gente vai copiar pasta mas por enquanto o que eu vou fazer o que eu vou fazer é o seguinte eu só vou executar isso daqui para copiar arquivos e um arquivo é um um elemento na nossa essa lista de arquivos né a nossa lista de arquivos ele é um elemento que no nome dele tem um ponto tá vendo ponto py pon TXT se tem um ponto dentro do nome do arquivo significa que ele é um arquivo e não uma pasta as pastas não podem ter ponto no nome delas Então eu só vou rodar esse copiar aqui assim ó se tem um ponto dentro do nome do arquivo Então se existe o texto ponto dentro do nome arquivo que é o texto Então faz essa cópia aqui só para ele não dar essa mensagem de erro aqui ainda não vai copiar a nossa pasta arquivos A gente vai ver como a gente vai fazer isso mas ele vai pelo menos conseguir copiar os outros arquivos vamos rodar o código agora aqui ó rodei vamos pegar ele agora lá na nossa pasta códigos selecionei a pasta selecionei Olha lá ele rodou beleza deu um errinho aqui não tem problema Beleza agora o que que a gente vai fazer eu vou chegar aqui vou deixar só essas três linhas aqui ó print arquivo o nosso nome completo do arquivo e o nome final do arquivo e agora a gente vai precisar então copiar o arquivo daqui e colar o arquivo no nome final do arquivo beleza para isso galera a gente vai precisar importar a biblioteca shutle tá a biblioteca shuttle ela já vem instalada no Python também só que o que acontece a biblioteca shutle ela tem uma funcionalidade legal Dá para fazer isso com a biblioteca US dava só que a Biblioteca shuts ela permite a gente copiar tanto arquivos quanto pastas do nosso computador e os arquivos que estão dentro dessa pasta do computador então ela permite você copiar esses dois tipos de coisa e se você olhar a nossa pasta códigos ela ela tem pastas que é o arquivos por exemplo e ela tem arquivos individualmente Beleza então ela para a gente conseguir fazer esse procedimento toda a biblioteca sh Vai facilitar a nossa vida bom pra gente conseguir fazer esse processo agora o que que a Biblioteca shir vai permitir a gente fazer a gente copiar um arquivo e colar um arquivo no destino final que que acontece para isso aqui poder acontecer a gente tem que criar essa pasta backup essa pasta bcap ela não existe ainda tá vendo Então dentro da nossa pasta códigos a gente tem que criar uma pasta com esse nome completo da pasta backup aqui como que eu faço para criar essa pasta você pode usar a própria biblioteca os para isso você pode fazer assim ó os. mc dir que ele vai make dir ou seja ele vai criar um diretório E aí você pode passar aqui para ele o nome completo da pasta backup para ele criar essa pasta backup para você olha só vou rodar o código rodei o código vou selecionar agora a minha pasta códigos aqui rodei ela e ó ele rodou aqui beleza show de bola e aí se você olhar agora sua pasta códigos e der um F5 nela tã aqui cadê cadê cadê aqui você vai ver que agora tem uma pasta backup ali dentro que ele criou só que o que que acontece pensa comigo toda vez que eu tô rodando esse código ele tá criando a pasta backup Beleza então se eu rodar esse código de novo agora aqui e ver no download e clicar no códigos e mandar selecionar ele vai dar um erro para mim ele vai falar olha não é possível criar um arquivo já existente porque a pasta backup já existe só que ao mesmo tempo eu preciso ter Esse comando de criar pasta backup porque se a pasta backup não existia eu quero criar ela como que a gente faz para gerenciar isso a gente bota isso dentro de um if se não existir uma pasta backup crie a pasta backup caso Já exista ele não faz nada então se não os.