Il modulo sottoprocesso Python consente di generare nuovi processi, connettersi ai loro tubi di input / output / errore e ottenere i loro codici di ritorno. Usalo per eseguire un comando di shell o un eseguibile in Python.
Voglio scrivere una funzione che eseguirà un comando shell e restituirà il suo output come stringa , non importa, si tratta di un messaggio di errore o di successo. Voglio solo ottenere lo stesso risultato che avrei ottenuto con la riga di comando. Quale sarebbe un esempio di codice che …
Sto usando il modulo sottoprocesso per avviare un sottoprocesso e connettermi al suo flusso di output (stdout). Voglio essere in grado di eseguire letture non bloccanti sul suo stdout. C'è un modo per rendere .readline non bloccante o per verificare se ci sono dati sullo stream prima che io invochi …
Altre versioni di Stack Overflow in Stack Overflow : versioni successive in versione successiva Ecco il codice Python per eseguire un comando arbitrario che restituisce i suoi stdoutdati o sollevare un'eccezione su codici di uscita diversi da zero: proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr stdout=subprocess.PIPE, shell=True) …
Sto avviando un sottoprocesso con il seguente comando: p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) Tuttavia, quando provo a uccidere usando: p.terminate() o p.kill() Il comando continua a essere eseguito in background, quindi mi chiedevo come posso effettivamente terminare il processo. Si noti che quando eseguo il comando con: p = subprocess.Popen(cmd.split(), …
Sto provando a effettuare una chiamata di sistema in Python e memorizzare l'output in una stringa che posso manipolare nel programma Python. #!/usr/bin/python import subprocess p2 = subprocess.Popen("ntpq -p") Ho provato alcune cose tra cui alcuni dei suggerimenti qui: Recupero dell'output di subprocess.call () ma senza fortuna.
Credo che eseguire un comando esterno con un ambiente leggermente modificato sia un caso molto comune. È così che tendo a farlo: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) Ho la sensazione che ci sia un modo migliore; sembra a posto?
Sto usando eSpeak su Ubuntu e ho uno script Python 2.7 che stampa e pronuncia un messaggio: import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text]) eSpeak produce i suoni desiderati, ma ingombra la shell con alcuni errori (ALSA lib ..., nessuna connessione socket), quindi non riesco a leggere …
Se faccio quanto segue: import subprocess from cStringIO import StringIO subprocess.Popen(['grep','f'],stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0] Ottengo: Traceback (most recent call last): File "<stdin>", line 1, in ? File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__ (p2cread, p2cwrite, File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles p2cread = stdin.fileno() AttributeError: 'cStringIO.StringI' object has no attribute 'fileno' Apparentemente un oggetto …
Chiamo diversi processi con il subprocessmodulo. Tuttavia, ho una domanda. Nei seguenti codici: callProcess = subprocess.Popen(['ls', '-l'], shell=True) e callProcess = subprocess.Popen(['ls', '-l']) # without shell Entrambi funzionano. Dopo aver letto i documenti, sono arrivato a saperloshell=True significa eseguire il codice attraverso la shell. Ciò significa che in assenza, il …
Voglio usare subprocess.check_output()con ps -A | grep 'process_name'. Ho provato varie soluzioni ma finora niente ha funzionato. Qualcuno può guidarmi come farlo?
Il mio script Python utilizza un sottoprocesso per chiamare un'utilità linux molto rumorosa. Voglio archiviare tutto l'output in un file di registro e mostrarne un po 'all'utente. Ho pensato che avrebbe funzionato quanto segue, ma l'output non viene visualizzato nella mia applicazione fino a quando l'utilità non ha prodotto una …
Per avviare programmi dai miei script Python, sto usando il seguente metodo: def execute(command): process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) output = process.communicate()[0] exitCode = process.returncode if (exitCode == 0): return output else: raise ProcessException(command, exitCode, output) Quindi, quando lancio un processo come Process.execute("mvn clean install"), il mio programma attende …
C'è un modo per specificare la directory di comando in esecuzione in Python's subprocess.Popen()? Per esempio: Popen('c:\mytool\tool.exe', workingdir='d:\test\local') Il mio script Python si trova in C:\programs\python È possibile eseguire C:\mytool\tool.exenella directory D:\test\local? Come posso impostare la directory di lavoro per un processo secondario?
Come posso recuperare il codice di uscita quando utilizzo il subprocessmodulo e il communicate()metodo di Python ? Codice pertinente: import subprocess as sp data = sp.Popen(openRTSP + opts.split(), stdout=sp.PIPE).communicate()[0] Dovrei farlo in un altro modo?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.