doc:appunti:prog:python_program_execution
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
doc:appunti:prog:python_program_execution [2009/10/01 15:30] – created niccolo | doc:appunti:prog:python_program_execution [2022/07/01 10:56] (current) – [Get the output of a program] niccolo | ||
---|---|---|---|
Line 8: | Line 8: | ||
* popen2.* | * popen2.* | ||
* commands.* | * commands.* | ||
+ | |||
+ | ===== Run a command ===== | ||
Run command with arguments. Wait for command to complete, then return the returncode attribute. | Run command with arguments. Wait for command to complete, then return the returncode attribute. | ||
<code python> | <code python> | ||
- | retcode = subprocess.call([" | + | retcode = subprocess.call([" |
</ | </ | ||
+ | |||
+ | Same as above, but run in a subshell (in this case the command may contain shell redirections): | ||
+ | |||
+ | <code python> | ||
+ | retcode = subprocess.call(" | ||
+ | </ | ||
+ | |||
+ | ===== Get the output of a program ===== | ||
+ | |||
+ | Assign the output to a variable: | ||
+ | |||
+ | <code python> | ||
+ | output = subprocess.Popen([" | ||
+ | </ | ||
+ | |||
+ | Get also the return code, stderr and iterate on the output: | ||
+ | |||
+ | <code python> | ||
+ | subproc = subprocess.Popen([" | ||
+ | output, stderr = subproc.communicate() | ||
+ | retcode = subproc.returncode | ||
+ | for line in output.decode(' | ||
+ | print(line) | ||
+ | </ | ||
+ | |||
+ | ===== Redirect output to a file ===== | ||
+ | |||
+ | <code python> | ||
+ | file = open("/ | ||
+ | subprocess.call([" | ||
+ | file.close() | ||
+ | </ | ||
+ | |||
+ | ===== Run two commands in a pipe ===== | ||
+ | |||
+ | <code python> | ||
+ | cmd1 = [" | ||
+ | cmd2 = [" | ||
+ | p1 = subprocess.Popen(cmd1, | ||
+ | p2 = subprocess.Popen(cmd2, | ||
+ | p1.stdout.close() | ||
+ | output = p2.communicate()[0] | ||
+ | </ | ||
+ | |||
+ | ===== Write to command standard input ===== | ||
+ | |||
+ | <code python> | ||
+ | cmd_input = [] | ||
+ | cmd_input.append(' | ||
+ | cmd_input.append(' | ||
+ | |||
+ | p = subprocess.Popen(' | ||
+ | p.communicate(os.linesep.join(cmd_input)) | ||
+ | </ | ||
+ |
doc/appunti/prog/python_program_execution.1254403855.txt.gz · Last modified: 2009/10/01 15:30 by niccolo