重复写入stdin并从Python中读取进程的stdout是一种常见的编程需求,可以通过以下步骤实现:
下面是一个示例代码,演示了如何实现这个过程:
import subprocess
def communicate_with_process(input_data):
# 创建子进程并建立通信管道
process = subprocess.Popen(['python', 'your_script.py'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
universal_newlines=True)
# 向子进程写入数据
process.stdin.write(input_data)
process.stdin.flush()
# 从子进程读取输出
output = process.stdout.read()
# 关闭管道和子进程
process.stdin.close()
process.stdout.close()
process.wait()
return output
# 调用函数并传入输入数据
input_data = "Hello, subprocess!"
output = communicate_with_process(input_data)
print(output)
在上述示例中,我们使用了subprocess
模块创建了一个子进程,并通过Popen
函数指定了输入输出管道。然后,我们通过stdin.write()
方法向子进程写入数据,并通过stdout.read()
方法从子进程读取输出。最后,我们关闭了管道和子进程,并返回输出结果。
这种方法可以应用于各种场景,例如与其他命令行工具进行交互、调用外部程序等。在腾讯云的云计算服务中,可以使用云服务器(CVM)来运行Python脚本,并通过管道与其他进程进行通信。
腾讯云相关产品推荐:
请注意,以上推荐的产品仅作为参考,具体选择应根据实际需求进行。
领取专属 10元无门槛券
手把手带您无忧上云