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.PIPE和stdout=subprocess.PIPE参数来将标准输入和标准输出重定向到管道。
然后,使用p.stdin.write方法将要写入标准输入的内容写入管道中,并通过p.stdin.flush方法刷新管道,使数据写入生效。
接着,使用p.stdout.readline方法从标准输出读取数据,并打印出来。
最后,使用p.wait方法等待子进程运行结束。
这个例子中,我们创建了一个子进程来执行Python代码,并通过管道将要执行的代码写入子进程的标准输入,并从子进程的标准输出中读取执行结果。
