Recently when I was working on that testing framework, I found that I was not familiar with executing system commands in Python, so I wanted to summarize. The following article mainly introduces you to the method of executing system commands in Python. Friends who need it can For reference, let’s take a look below.
Preface
Python is often called the "glue language" because it can easily operate other programs and easily package other languages. Library written. In the Python/wxPython environment, a method of executing external commands or starting another program in a Python program.
This article will introduce in detail the relevant information on how to execute system commands in Python. I won’t say much below, let’s take a look at the detailed introduction.
(1) os.system()
This method directly calls standard C’s system()
Function only runs system commands in a sub-terminal and cannot obtain the information returned by execution.
>>> import os >>> output = os.system('cat /proc/cpuinfo') processor : 0 vendor_id : AuthenticAMD cpu family : 21 ... ... >>> output # doesn't capture output 0
(2) os.popen()
This method Executing the command and returning the executed information object returns the result through a pipeline file.
>>> output = os.popen('cat /proc/cpuinfo') >>> output <open file 'cat /proc/cpuinfo', mode 'r' at 0x7ff52d831540> >>> print output.read() processor : 0 vendor_id : AuthenticAMD cpu family : 21 ... ... >>><span style="font-size:14px;">
(3) commands module
>>> import commands >>> (status, output) = commands.getstatusoutput('cat /proc/cpuinfo') >>> print output processor : 0 vendor_id : AuthenticAMD cpu family : 21 ... ... >>> print status 0
Note 1: The return value (status) returned by this method under a Unix-like system is not the same as the return value after the script or command is executed. This is Because os.wait() is called, you have to understand the implementation of system wait() for the specific reason. If you need the correct return value (status), you only need to right-shift the return value by 8 bits.
Note 2: When the parameters or returns of the execution command contain Chinese characters, it is recommended to use subprocess.
(4) subprocess module
#This module is a powerful subprocess management module and is a replacement# A module for ##os.system,
os.spawn* and other methods.
>>> import subprocess >>> subprocess.Popen(["ls", "-l"]) <strong> # python2.x</strong> doesn't capture output >>> subprocess.run(["ls", "-l"]) <strong># python3.x</strong> doesn't capture output <subprocess.Popen object at 0x7ff52d7ee490> >>> total 68 drwxrwxr-x 3 xl xl 4096 Feb 8 05:00 com drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Desktop drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Documents drwxr-xr-x 2 xl xl 4096 Jan 21 07:44 Downloads ... ... >>>
The above is the detailed content of Detailed explanation of how to execute system commands in Python. For more information, please follow other related articles on the PHP Chinese website!