gpt4 book ai didi

python - 使用 python 子进程通过管道传输很长的字符串

转载 作者:行者123 更新时间:2023-11-28 23:06:27 25 4
gpt4 key购买 nike

我想用python的subprocess库来处理一个字符串,在不同的程序中处理这个字符串,然后收集并保存。不幸的是,这个字符串很长(有数百万个字符)。所以我设置了以下代码段:

cmd = ['some command']
p1 = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=STDOUT)
result = p1.communicate(input='some string')

“某些字符串”实际上有数百万个字符长。

我总是得到这个错误:

OSError: [Errno 32] Broken pipe

我已经在较短的字符串上进行了尝试并且代码有效,所以我猜我正在用尽管道缓冲区。

有没有合理的解决方案而不需要创建临时文件?

有几个限制使使用子进程成为目前对我来说最有吸引力和最简单的解决方案,这就是为什么我想要一个在 python 和子进程内的解决方案。

最佳答案

破损的管道也可能意味着子进程死于其他原因。无效输入或内存不足可能是罪魁祸首。您是否尝试过将命令更改为 cat 之类的命令?

关于python - 使用 python 子进程通过管道传输很长的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com