如何从python内部调用安装在linux上的程序?

这就是我一直在尝试的


def test():

    import sys

    import subprocess

    file1 = open(sys.argv[1],"r") #this is the input to fastacmd

    idx = file1.readlines()

    outname = idx[0].split("\r\n")[0]

    foutname = outname + "_f_output"

    astaseq = subprocess.call(["fastacmd","-i", file1, "-o",foutname])

    blastresult = subprocess.call(["blastp", "-db", "db1.faa", "-query", foutname, "-out", outname])

但是我被抓住了,我真的无法理解


File "test.py", line 16, in <module>

    fastacmd_blastp()

  File "test.py", line 11, in test

    fastaseq = subprocess.call(["fastacmd","-i", file1, "-o",fastaoutname])

  File "/usr/local/lib/python2.7/subprocess.py", line 486, in call

    return Popen(*popenargs, **kwargs).wait()

  File "/usr/local/lib/python2.7/subprocess.py", line 672, in __init__

    errread, errwrite)

  File "/usr/local/lib/python2.7/subprocess.py", line 1202, in _execute_child

    raise child_exception

TypeError: execv() arg 2 must contain only strings

有人可以帮忙吗?谢谢


慕勒3428872
浏览 140回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python