Salvar um deque em um arquivo de texto

votos
1

Estou escrevendo um rastreador em Python, a fim de fazer Ctrl + C para não causar meu rastreador de começar de novo na próxima corrida, eu preciso salvar o deque de processamento em um arquivo de texto (um item por linha) e atualizá-lo a cada iteração, a operação de atualização precisa ser super rápido. Para não reinventar a roda, eu estou perguntando se existe um módulo criado para fazer isso?

Publicado 10/12/2008 em 12:23
fonte usuário
Em outras línguas...                            


4 respostas

votos
4

Como alternativa, você pode configurar uma função de saída, e conserva o deque na saída.

Função de saída
Pickle

Respondeu 10/12/2008 em 12:29
fonte usuário

votos
1

Eu não tenho certeza se eu entendi o direito pergunta, eu sou apenas curioso, por isso aqui estão algumas perguntas e sugestões:

Você está planejando para pegar a interrupção Ctrl + C e fazer o deque? O que acontece se as falhas de lagartas alguma razão arbitrária como uma exceção não tratada ou acidente? Você perde o status da fila e começar tudo de novo? a partir da documentação:

Nota

A função de saída não é chamado quando o programa for morto por um sinal, quando um erro interno fatal Python é detectado, ou quando os._exit () é chamado.

O que acontece quando você acontecer para visitar o mesmo URI novamente, você está mantendo uma lista visitou ou algo assim?

Eu acho que você deve ser manter algum tipo de visita e informações de sessão / status para cada URI você rastejar. Você pode usar as informações visita a decidir rastrear um URI ou não, quando você visitar o mesmo URI próxima vez. A outra informação - informações da sessão - para a última sessão com esse URI vai ajudar em pegar apenas as coisas incremental e se a página não é mudança nenhuma necessidade de buscá-lo poupar alguns custos db / S, duplicatas, etc.

Dessa forma, você não terá que se preocupar com o ctrl + C ou um acidente. Se o rastreador vai para baixo por qualquer motivo, digamos após rastejar 60K mensagens quando 40K mais foram deixados, o próximo rastreador tempo preenche na fila, embora a fila pode ser enorme, mas o rastreador pode verificar se o que já visitou o URI ou não e qual era o estado da página quando ele foi rastreado - otimização - é que a página requer uma nova pegar coz ele foi alterado ou não.

Espero que seja de alguma ajuda.

Respondeu 10/12/2008 em 14:13
fonte usuário

votos
1

Você deve ser capaz de usar pickle para serializar suas listas.

Respondeu 10/12/2008 em 12:30
fonte usuário

votos
0

Algumas coisas que vêm à minha mente:

  • deixar o identificador de arquivo aberto (não feche a toda arquivo que você escreveu alguma coisa)
  • ou gravar o arquivo a cada n itens e pegar um sinal perto de escrever os itens atuais não escritas
Respondeu 10/12/2008 em 12:40
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more