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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top