欢迎访问宙启技术站
智能推送

Python中通过管道和STDIN_FILEOUT进行标准输入输出文件的控制

发布时间:2024-01-10 13:41:59

在Python中,可以使用subprocess模块来通过管道和STDIN、STDOUT控制标准输入输出文件。下面是一个使用例子:

import subprocess

# 创建一个子进程,并使用管道进行标准输入输出文件的控制
p = subprocess.Popen(['python'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

# 向标准输入写入数据
p.stdin.write('print("Hello, world!")
')
p.stdin.flush()

# 从标准输出读取数据
output = p.stdout.readline()
print(output)

# 等待子进程运行结束
p.wait()

在这个例子中,首先使用subprocess.Popen函数创建一个子进程,并指定了stdin=subprocess.PIPEstdout=subprocess.PIPE参数来将标准输入和标准输出重定向到管道。

然后,使用p.stdin.write方法将要写入标准输入的内容写入管道中,并通过p.stdin.flush方法刷新管道,使数据写入生效。

接着,使用p.stdout.readline方法从标准输出读取数据,并打印出来。

最后,使用p.wait方法等待子进程运行结束。

这个例子中,我们创建了一个子进程来执行Python代码,并通过管道将要执行的代码写入子进程的标准输入,并从子进程的标准输出中读取执行结果。