在python子进程中禁止文件输出

cyvaqqii  于 2023-04-19  发布在  Python
关注(0)|答案(1)|浏览(126)

我有一个二进制可执行文件,当运行时写~10个左右的文件,也写到标准输出。由于某种原因,该程序不提供不写任何这些文件的选项。
我想把这个程序作为一个python子进程来运行,但是为了减少I/O操作,我想阻止所有的文件被写到磁盘上,只收集标准输出,这可能吗?
我试过subprocess.run用capture_output=True和其他一些标志运行www.example.com,但没有任何运气。
提前感谢您的帮助!

dsekswqp

dsekswqp1#

如果你有足够的内存,你可以使用/dev/shm

$ df -h
tmpfs               16G    4,0K   16G   1% /dev/shm

假设你的二进制文件写入当前工作目录:

with tempfile.TemporaryDirectory(dir="/dev/shm") as workdir:
    p = subprocess.run(("binary",), capture_output=True, cwd=workdir)

如果内存有问题,您可以使用LD_PRELOAD覆盖open函数,并将写入重定向到/dev/null

相关问题