Python 子进程被杀死。可能是因为内存问题。如何解决这个问题?

问题描述 投票:0回答:0

我正在使用 python 子进程模块在我的 python 代码中运行一个 unix 命令。我只想检查输入文件的同一行中是否存在特定搜索词(输入文件大小为 1.8 GB)。这是我写的 python 代码。然而,当我执行这个程序时,我的 python 代码被杀死了。

import subprocess output = subprocess.Popen(['zcat', '/home/user/input_data/sample_ID/file_name.gvcf.gz', '|', 'grep', '-w', 'chr7', '|', 'grep', '-w', '87509329'], stdout=subprocess.PIPE).communicate()[0] print(output)

Killed

如果我在我的终端中运行同样的命令,我能够正确地得到结果。这是我在终端运行时得到的结果

zcat file_name.gvcf.gz | grep -w "chr7" | grep -w "87509329" chr7    87509329    .   A   .   .   .   DP=29   GT:AD:DP:ICNT:RGQ:SPL   0/0:99:29:127,1,1,0,0,0,0,0:81:0,81,255

我假设是因为一些内存问题,我的 python 代码被杀死了。谁能指导我如何解决这个问题?

我只是想检查输入文件中的同一行中是否存在“chr7”和“87509329”这两个模式而不解压缩它。

python subprocess bioinformatics
© www.soinside.com 2019 - 2024. All rights reserved.