Python ftplib - alguma maneira de calar a boca?
Pergunta
Estou escrevendo um chicote de teste no Python e, como parte dos testes, preciso inicializar um servidor FTP e fazer upload de vários arquivos. Estou usando o ftplib e tudo está funcionando bem. O único problema que tenho é que estou vendo um monte de texto FTP aparecendo na janela do console misturada com os resultados dos meus testes, o que torna a digitalização dos resultados bastante complicados. Eu não encontrei uma maneira de fechar a FTP Lib e impedir que isso aconteça, alguém sabe como parar isso?
Solução
Você precisa passar manualmente em retorno de chamada vazio (ou de outra forma personalizado) para pelo menos TRABALHAR e dir. Por padrão, eles imprimem para stdout (design questionável). Por padrão, chamadas (provavelmente para depuração) como
myFTP.retrlines(command)
myFTP.dir(someDir)
Imprimirá o seu terminal. Remova -os ou use retornos de chamada personalizados:
myFTP.retrlines(command, retrlinesCallback)
myFTP.dir(someDir, dirCallback)
retrlinesCallback
e dirCallback
As funções podem ter uma lógica para imprimir em EG no terminal apenas se a depuração estiver ativada.
Há também um set_debuglevel opção. O padrão é 0 (sem depuração), mas pode ser definido em algum lugar no código.