我可以将StringIO对象作为“文件”参数传递给Linux命令行吗?

时间:2012-05-08 04:28:27

标签: python

Linux上的某些命令会将文件作为参数接收。 (猫,grep,sed,awk,......) 如何将StringIO对象作为"文件"争论? (因为我不想把它写到磁盘上的文件中,然后显式传递给这些命令) 或者我需要其他类型的内存文件"对象

2 个答案:

答案 0 :(得分:2)

Create a pipeconnect the read endpreexec_fn内的进程,将设备文件传递给命令,copy the StringIO contents传递给写端。

答案 1 :(得分:0)

我认为你问的是如何将StringIO对象作为文件参数传递。

您列出的命令也会将stdout的输入作为文件参数。

如:

mypyscript.py | cat 

cat < mypyscript.py

你在这里做的是在mypqscript.py中将StringIO对象内容写入stdout

假设fo是一个包含内容的StringIO对象,在脚本的脚本中的适当位置有:

   sys.stdout.write(fo.getvalue())
   sys.stdout.flush()