PITCH: Um git para o TabNews
sim, você ouviu bem. Eu desenvolvi um "git" para o TabNews. Mas deixa eu explicar o motivo da ideia.
eu estava navegando pelo TabNews e li uma artigo sobre git, nesse exato momento tive a brilhante ideia de desenvolver um tipo de CLI
para enviar meus post para o TabNews sem a necessidade de poder escrever diretamente no site.
Então comecei a desenvolver esse projeto incrível para poder publicar os posts.
Bom, o projeto é inteiramente feito em python.
pra quem quiser dá uma olhada no código e analisar e querer contribuir, vou deixar o código fonte no meu GitHub: repositório todos os comando estão no readme do repositório.
Inclusive, esse post foi digitado e publicado fora do TabNews.
Só uns detalhes sobre o código:
Em vez de verificar se o arquivo existe, simplesmente tente abri-lo e capture as exceções. Essa ideia de verificar e só depois abrir gera uma condição de corrida (race condition): em resumo, entre a verificação e a abertura, o estado do arquivo pode ter mudado e dar erro do mesmo jeito (mais detalhes aqui).
O with
já garante que o arquivo será fechado ao final, então não precisa chamar close()
.
Para verificar a extensão do arquivo e demais manipulações, dê uma olhada no módulo pathlib
- disponível desde o Python 3.4 e considerada uma alternativa mais moderna à os.path
(veja aqui um comparativo).
Por fim, se a ideia é que o arquivo JSON seja apenas para "organização" interna e não necessariamente para ser lido por humanos, considere alternativas como os módulos pickle
ou shelve
.