从python解释器内部创建管道

从python解释器内部创建管道,python,bash,python-3.x,pipe,Python,Bash,Python 3.x,Pipe,有时我只是想快速地将一个大的输出重定向到一个外部程序,假设在Python3.x中我有 >>> import sys >>> sys.modules.keys() 如何重定向的输出 >>> sys.modules.keys() 对于特定的命令或应用程序?如果您经常做这样的事情,那么创建一个帮助器模块可能会很有用,它基本上是这样做的 def pipeinto(data, *prog): import subprocess sp

有时我只是想快速地将一个大的输出重定向到一个外部程序,假设在Python3.x中我有

>>> import sys
>>> sys.modules.keys()
如何重定向的输出

>>> sys.modules.keys()

对于特定的命令或应用程序?

如果您经常做这样的事情,那么创建一个帮助器模块可能会很有用,它基本上是这样做的

def pipeinto(data, *prog):
    import subprocess
    sp = subprocess.Popen(prog, stdin=subprocess.PIPE)
    sp.stdin.write(str(data))
    sp.stdin.close()
    return sp
这使您能够

pipeinto("\n".join(sys.modules.keys()), "gedit")

喜欢给我们举个例子?顺便说一句,使用ipython而不是python解释器本身,你的生活会更美好easier@Ali这是一个管道
cal | gedit
我想做这样的事情
sys.modules.keys()| gedit
@Ali我也在为提供内置python解释器的应用程序寻找可行的解决方案,但我不能使用iPython。@Ken iPython的较新版本配备了一个“后端”服务器,iPython与之交互,并在您的应用程序中公开了与之通信的api,如果现在,为什么你不能使用iPython?@Ali只是因为我必须使用应用程序中内置的python解释器。现在很多应用程序都提供了内置的Python解释器,我不能只使用一个随机的Python解释器?例如,我发现
很有用linux中执行本地命令的命令行
ftp
客户端的解决方案。@Ken:glglglgl使用
子流程
模块的答案是,我认为,您会找到最好的通用解决方案。任何其他方法都是特定于某些IDE的,您可以使用这些IDE编辑Python程序。标准解释器没有
命令或任何东西。它只处理Python。