要在Python中执行Shell命令并获取其结果,可以使用Python的subprocess
模块。下面是在Python中执行Shell命令并将结果保存的实例攻略:
1. 导入subprocess模块
import subprocess
2. 执行Shell命令
运行Shell命令可以使用subprocess
模块中的run()
函数。例如,要在Python中执行echo "Hello, World!"
Shell命令并获取其结果,可以使用以下代码:
result = subprocess.run(['echo', 'Hello, World!'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
encoding='utf-8')
- 该代码中的第一个参数是要运行的Shell命令和参数列表的数组。在这种情况下,我们运行
echo
命令并传递一个字符串"Hello, World!"
作为参数。 stdout=subprocess.PIPE
表示将标准输出流捕获到Python中的一个字节流变量中。stderr=subprocess.PIPE
表示将标准错误流捕获到Python中的一个字节流变量中。encoding='utf-8'
表示使用UTF-8编码将字节流转换为字符串。
3. 获取命令输出
命令输出可以从result
变量中的stdout
和stderr
属性中获得。在这个例子中,输出为"Hello, World!\n"
,可以使用以下代码获取:
output = result.stdout.strip()
结果为"Hello, World!"
,因为我们去掉了输出中的换行符。
4. 完整示例
下面是一个完整的示例,它使用Shell命令输出当前目录下的所有文件:
import subprocess
result = subprocess.run(['ls', '-l'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
encoding='utf-8')
output = result.stdout.strip()
print(output)
5. 示例说明
另一个实现示例是,使用Shell命令获取GitHub仓库的README.md文件的内容:
import subprocess
result = subprocess.run(['curl', 'https://raw.githubusercontent.com/airobotics/readmedemo/master/README.md'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
encoding='utf-8')
output = result.stdout.strip()
print(output)
- 这个示例使用
curl
命令从https://raw.githubusercontent.com/airobotics/readmedemo/master/README.md 获取仓库的README.md文件。 stdout=subprocess.PIPE
表示将标准输出流捕获到Python中的一个字节流变量中。stderr=subprocess.PIPE
表示将标准错误流捕获到Python中的一个字节流变量中。encoding='utf-8'
表示使用UTF-8编码将字节流转换为字符串。
总之,使用Python执行Shell命令并获取其结果非常简单,只需要使用Python中的subprocess
模块。在使用之前,请确保了解Shell命令的安全性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 执行shell命令并将结果保存的实例 - Python技术站