módulo subprocesso: usando o método de chamada com objetos ficheiro temporário
-
20-08-2019 - |
Pergunta
Eu criei arquivos chamados temporários, com a bibliotecas ficheiro temporário método NamedTemporaryFile. Eu escrevi para eles liberado os buffers, e eu não fechá-los (ou então eles podem ir embora)
Eu estou tentando usar o módulo subprocess
para chamar alguns comandos shell usando esses arquivos gerados.
subprocess.call('cat %s' % f.name)
sempre falha dizendo que o arquivo temporário chamado não existe.
os.path.exists(f.name)
sempre retorna true.
Eu posso executar o comando cat no arquivo diretamente do shell.
Existe alguma razão o módulo subprocess
não funcionará com arquivos temporários?
Existe alguma maneira de fazê-lo funcionar?
Agradecemos antecipadamente.
Solução
Você está usando shell = True opção para subprocesso?
Outras dicas
Por que você não fazer seus NamedTemporaryFile
s com o delete=False
parâmetro opcional? Dessa forma, você pode fechar com segurança-los sabendo que eles não vão desaparecer, usá-los normalmente depois, e explicitamente desvinculá-los quando estiver pronto. Desta forma, tudo vai funcionar multi-plataforma, também.