módulo subprocesso: usando o método de chamada com objetos ficheiro temporário

StackOverflow https://stackoverflow.com/questions/1049648

  •  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.

Foi útil?

Solução

Você está usando shell = True opção para subprocesso?

Outras dicas

Por que você não fazer seus NamedTemporaryFiles 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top