modulo sottoprocesso: utilizzo del metodo call con oggetti tempfile
-
20-08-2019 - |
Domanda
Ho creato file con nome temporanei, con le librerie di tempfile metodo NamedTemporaryFile. Ho scritto a loro svuotati i buffer e non li ho chiusi (altrimenti potrebbero andare via)
Sto cercando di utilizzare il modulo subprocess
per chiamare alcuni comandi della shell usando questi file generati.
subprocess.call('cat %s' % f.name)
non riesce sempre a dire che il file temporaneo denominato non esiste.
os.path.exists(f.name)
restituisce sempre true.
Posso eseguire il comando cat sul file direttamente dalla shell.
C'è qualche motivo per cui il modulo <=> non funzionerà con i file temporanei?
C'è un modo per farlo funzionare?
Grazie in anticipo.
Soluzione
Stai usando l'opzione shell = True per il sottoprocesso?
Altri suggerimenti
Perché non fai i tuoi NamedTemporaryFile
s con il parametro opzionale delete=False
? In questo modo puoi chiuderli in modo sicuro sapendo che non scompariranno, usarli normalmente in seguito e scollegarli esplicitamente quando hai finito. In questo modo tutto funzionerà anche su più piattaforme.