博客
关于我
Python:subprocess.call,stdout to file,stderr to file,在屏幕上实时显示stderr
阅读量:797 次
发布时间:2023-03-08

本文共 816 字,大约阅读时间需要 2 分钟。

在Python中,subprocess.call()函数是一个强大的工具,能够执行外部命令或脚本。如果你想让命令的输出(包括标准输出和标准错误)同时重定向到文件,并在屏幕上实时显示标准错误信息,可以使用subprocess.Popen()函数来实现这一点。

以下是一个实用的示例:

import subprocess
# 创建一个Popen对象p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
# 读取命令的输出和错误信息stdout, stderr = p.communicate()
# 在屏幕上实时显示stderrfor line in stderr.split('\n'):    print(line)
# 将整个输出(包括stdout和stderr)重定向到文件with open('output.txt', 'w') as f:    f.write(stdout + '\n' + stderr)

在这个示例中,我们首先创建了一个subprocess.Popen()对象,指定了要执行的命令及其参数。通过设置stdout=subprocess.PIPE和stderr=subprocess.PIPE,我们可以将命令的标准输出和错误信息捕获到程序中。随后,调用communicate()方法读取这些信息。

接着,我们通过循环实时打印出错误信息,并将所有输出(包括标准输出和标准错误)写入到一个文件中。这种方法不仅保证了输出的完整性,还允许你在脚本执行过程中实时查看错误信息。

如果你想自定义命令或脚本,你只需要修改命令参数部分即可。例如,可以将['ls', '-l']替换为你需要执行的具体命令或脚本参数。

通过这种方式,你可以轻松地管理和重定向命令输出,满足不同的应用场景需求。

转载地址:http://xblfk.baihongyu.com/

你可能感兴趣的文章
python3打开txt文件_使用Python 3从文本文件读取句子并添加到列表中
查看>>
python3爬虫抓取智联招聘职位信息代码
查看>>
Python3爬虫数据入数据库---把爬取到的数据存到数据库,带数据库去重功能
查看>>
python3的 pymysql把mysqldb库取代了,让python 3支持mysqldb的解决方法
查看>>
Python3笔记——IDE的选择
查看>>
python3简单使用requests 用户代理,cookie池
查看>>
Python3组播通信编程实现教程(发送者+接收者)
查看>>
Python3编写网络爬虫10-数据存储方式三-CSV文件存储
查看>>
python3读取redis返回数据带有'b'的问题
查看>>
Python3连接MySQL
查看>>
Python关于isinstance函数的解析 | 附Demo(全)
查看>>
Python3:setup.py:完成所有任务的PIP安装(Build_ext+Install)
查看>>
python4.0 gil_Python 并发编程系列--1、浅谈GIL历史及对多线程的影响
查看>>
python60行绘图程序_天底下最简单的QT画图板,就一个类,60行代码
查看>>
Python: AES加密与解密
查看>>
Python: Range() 最大尺寸;动态的还是静态的?
查看>>
Python: Windows下用 multiprocessing 的深坑
查看>>
python:Could not find platform independent libraries <prefix>解决方法
查看>>
Python:datetime tzinfo 时区名称文档
查看>>
Python:deepcopy(list) vs new_list = old_list[:]
查看>>