以下是详细讲解“Python调用shell命令常用方法(4种)”的完整攻略,包含两个示例说明。
1. 使用os.system()函数
在Python,我们可以使用os.system()
函数来调用shell命令。os.system()
函数的法如下:
os.system(command)
其中command
参数是要执行的shell命令。
以下是一个使用os.system()
函数调用shell命令的示例:
import os
os.system("ls -l")
在以上示例中,我们使用os.system()
函数调用了ls -l
命令,该命令会列出目录下的所有文件和文件夹,并显示详细信息。
2. 使用subprocess.run()函数
在Python 3.5及以上版本中,我们可以使用subprocess.run()
函数来调用shell命令。`sub.run函数的语法如下:
subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None, env=None, universal_newlines=None, cwd=None, start_new_session=False, pass_fds=(), *, group=None, killpg=None)
其中,args
参数是要执行的shell命令,可以是字符串或列表。
以下是使用subprocess.run()
函数调用shell命令的例:
import subprocess
result = subprocess.run(["ls", "-l"], stdout=subprocess.PIPE)
print(result.stdout.decode("utf-8"))
在以上示例中,我们使用subprocess.run()
函数调用了ls -l
命令,该命令会列出当前目录下的所有文件和文件夹,并显示详细信息。我们将stdout
参数设置为subprocess.PIPE
以便获取命令的输出结果。然后,我们使用decode()
方法将输出结果转换为字符串,并print()
函数输出结果。
3 使用os.popen()函数
在Python中,我们可以使用os.popen()
函数来调用shell命令,并获取命令的输出结果。os.popen()
的语法如:
os.popen(command[, mode[, bufsize]])
其中,command
参数是要执行的shell命令,mode
参数是打开文件的模式,可以是'r'
(读取模式)或'w'
(写入模式),bufsize
参数是缓冲区大小。
以下是一个使用.popen()
函数调用shell命令的示例:
import os
output = os.popen("ls -l").read()
print(output)
在以上示例中,我们使用os.popen()
函数调用了ls -l
命令,该命令会出当前目录下的所有文件和文件夹,并显示详细信息。然后,我们使用read()
方法获取命令的输出结果使用print()
输出结果。
4. 使用subprocess.Popen()函数
在Python中,我们可以使用subprocess.Popen()
函数来调用shell命令,并获取命令的输出结果。subprocess.Popen()
函数的语法如下```python
subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=None, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, encoding=None, errors=None)
其中,`args`参数是要执行的shell命令,可以是字符串或列表。
以下是一个使用`subprocess.Popen()`函数调用shell命令的示例:
```python
import
process = subprocess.Popen(["ls", "-l"], stdout=subprocess.PIPE)
output, error = process.communicate()
print(output.decode("utf-8"))
在以上示例中,我们使用subprocess.Popen()
函数调用了ls -l
命令,该命令会列出当前目录下的所有文件和文件夹,并显示详细信息。我们将stdout
参数设置为subprocess.PIPE
,以便获取命令的输出结果。然后,我们使用communicate()
方法获取命令的输出结果和错误信息,并使用decode()方法将输出结果转为字符串,并使用
print()`函数输出结果。
5. 结论
在Python中,我们可以使用os.system()
、subprocess.run()
、os.popen()
和subprocess.Popen()
函数来调用shell命令。其中,os.system()
函数和os.popen()
函数比较简单,但是不能获取命令的输出结果。subprocess.run()
函数和subprocess.Popen()
函数比较灵活,可以获取命令的输出结果,但是使用起来稍微复杂一些。根据实际需求,我们可以选择适合自己的方法来调用shell命令。
示例1:使用os.system()函数调用shell命令
以下是一个使用os.system()
函数调用shell命令的示例:
import os
os.system("echo 'Hello, World!'")
在以上示例中,我们使用os.system()
函数调用了echo 'Hello, World!'
命令,该命令会输出Hello, World!
字符串。
示例2:使用subprocess.run()函数调用shell命令
以下是一个使用subprocess.run()
函数调用shell命令的示例:
import subprocess
result = subprocess.run(["echo", "Hello, World!"], stdout=subprocess.PIPE)
print(result.stdout.decode("utf-8"))
在以上示例中,我们使用subprocess.run()
函数调用了echo 'Hello, World!'
命令,该命令会输出Hello, World!
字符串。我们将stdout
参数设置为subprocess.PIPE
以便获取命令的输出结果。然后,我们使用decode()
方法将输出结果转换为字符串,并print()
函数输出结果。
通过以上示例,我们可以看到如何使用os.system()
和subprocess.run()
函数调用shell命令,并获取命令的输出结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python调用shell命令常用方法(4种) - Python技术站