在Python中,使用subprocess
模块可以调用系统命令并与其交互。下面是一些常见的使用方法:
- 执行命令并获取输出:
import subprocess output = subprocess.check_output(['ls', '-l']) print(output.decode())
上述代码执行ls -l
命令,并将输出结果以字节形式保存在output
变量中。使用decode()
方法将字节转换为字符串并打印输出。
- 执行命令并获取返回值:
import subprocess return_code = subprocess.call(['ls', '-l']) print(return_code)
上述代码执行ls -l
命令,并将返回值保存在return_code
变量中。返回值为0表示命令成功执行,非0表示执行失败。
- 执行命令并捕获错误:
import subprocess try: output = subprocess.check_output(['command']) except subprocess.CalledProcessError as e: print(e.returncode) print(e.output.decode())
上述代码执行command
命令,并捕获可能的错误。如果命令执行成功,将输出保存在output
变量中,否则将返回值保存在e.returncode
中,错误信息保存在e.output
中。
- 执行命令并传递参数:
import subprocess filename = 'example.txt' subprocess.call(['touch', filename])
上述代码执行touch
命令,并传递参数filename
,在当前目录下创建一个名为example.txt
的文件。
- 执行命令并传递输入:
import subprocess input_data = 'https://www.yisu.com/ask/Hello World!' output = subprocess.check_output(['grep', 'World'], input=input_data.encode()) print(output.decode())
上述代码执行grep 'World'
命令,并将input_data
作为输入传递给命令。输出结果包含World
的行将被保存在output
变量中。
这只是subprocess
模块的一些基本用法,还有很多其他功能可以探索。请查阅官方文档以获得更详细的信息:https://docs.python.org/3/library/subprocess.html