gpt4 book ai didi

python - 将大文件发送到python中的PIPE输入

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:15 25 4
gpt4 key购买 nike

我有以下代码:

sourcefile = open(filein, "r")
targetfile = open(pathout, "w")

content= sourcefile.read():

p = Popen([SCRIPT], stdout=targetfile, stdin=PIPE)
p.communicate(content)

sourcefile.close()
targetfile.close()

sourcefile 中的数据非常大,因此将其存储在'content' 中需要大量内存/交换。我尝试使用 stdin=sourcefile 将文件直接发送到 stdin,除了外部脚本“挂起”外,它可以正常工作,即:一直在等待 EOF。这可能是外部脚本中的错误,但目前我无法控制。

关于如何将大文件发送到我的外部脚本有什么建议吗?

最佳答案

p.communicate(content) 替换为从 sourcefile 读取并以 block 的形式写入 p.stdin 的循环。当sourcefile为EOF时,确保关闭p.stdin

sourcefile = open(filein, "r")
targetfile = open(pathout, "w")

p = Popen([SCRIPT], stdout=targetfile, stdin=PIPE)
while True:
data = sourcefile.read(1024)
if len(data) == 0:
break
p.stdin.write(data)
sourcefile.close()
p.stdin.close()

p.wait()
targetfile.close()

关于python - 将大文件发送到python中的PIPE输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3651275/

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