gpt4 book ai didi

python - 如何将整数值传递给 python 的 subprocess.call 方法?

转载 作者:太空宇宙 更新时间:2023-11-04 10:39:56 25 4
gpt4 key购买 nike

我试图将一个整数值传递给 python 的 subprocess.call 方法:

subprocess.call('samtools','view','-bq', '1','DS130.bam','>','DS130umr.bam')

'-bq' 之后的参数必须是一个整数值。但是我相信 subprocess.call 一直将它视为一个字符串,所以我不断收到错误“TypeError:bufsize 必须是一个整数”。

如何让 subprocess.call 将“1”解释为整数值?

最佳答案

这与您输入的整数无关;您错误地调用了该函数。您需要将命令作为一个序列,一个列表传递:

subprocess.call(['samtools','view','-bq', '1','DS130.bam','>','DS130umr.bam'])

但是,这不会被 shell 处理,因此输出重定向 (>) 将不起作用。如果您想将该工具的输出定向到另一个文件,请使用 shell=True 并传入一个字符串:

subprocess.call('samtools view -bq 1 DS130.bam > DS130umr.bam', shell=True)

让 shell 处理,或者使用输出重定向:

with open('DS130umr.bam', 'wb') as redirected:
subprocess.call(['samtools','view','-bq', '1','DS130.bam'], stdout=redirected)

关于python - 如何将整数值传递给 python 的 subprocess.call 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266616/

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