我正在尝试通过 subprocess.PIPE 管道输入文件:
我尝试的第一个管道正在工作,如下所示:
sanitizer_args = ['java', '-Xmx'+args.memory , '-cp', args.jar, 'org.genemania.plugin.apps.GeneSanitizer', '--data', args.dataset, '--organism', args.organism]
p = subprocess.Popen(sanitizer_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
sanitized, errors = p.communicate(input = sanitizer_input)
哪个工作正常 - 第二个以完全相同的方式失败:
query_args = ['java', '-Xmx'+args.memory, '-cp', args.jar, 'org.genemania.plugin.apps.QueryRunner', '--data', args.dataset, '--threads', args.threads, '--out', 'scores', '--results', args.results]
genequeryfile = '\n'.join([args.organism, final_querygenes, args.networks, '100', args.weighting])
q = subprocess.Popen(query_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
results, query_errors = q.communicate(input = genequeryfile)
我确实知道第二个子流程能够接受多个输入 - 这是否会影响我的问题?
在此先感谢您的帮助。