当前位置: 首页 > 面试题库 >

Python:子流程并运行带有多个参数的bash脚本

万嘉石
2023-03-14
问题内容

我该如何使用子流程模块运行bash脚本,必须为此提供几个参数?

这是我目前正在使用的:

subprocess.Popen(['/my/file/path/programname.sh', 'arg1 arg2 %s' % arg3], \
    shell = True)

bash脚本似乎没有接受任何参数。非常感谢您提供任何见解!


问题答案:

将参数作为列表传递,请参阅docs中的第一个代码示例:

import subprocess

subprocess.check_call(['/my/file/path/programname.sh', 'arg1', 'arg2', arg3])

如果arg3不是字符串;在传递到check_call():之前将其转换为字符串arg3 = str(arg3)



 类似资料:
  • 问题内容: 我想从另一个Python脚本运行一个Python脚本。我想像使用命令行一样传递变量。 例如,我会跑我的,将通过值(0,1,2,3)的列表迭代第一个脚本,并通过那些到第二脚本,然后,等 我发现了Stack Overflow问题1186789,这是一个类似的问题,但是ars的答案调用了一个函数,在这里我想运行整个脚本,而不仅仅是函数,而balpha的答案则调用了脚本,但没有参数。我将其更改

  • 我需要使用shell命令来运行python脚本 但是args是python脚本的列表: 当我使用shell python时 系统显示:"('有一个错误" 如何将列表转换为脚本? (“存储”、“IDCODE”、18116485、88779)是一个参数

  • 我正在从NPM迁移到Thread,我希望并行运行脚本,例如: 它在纱线中的等价物是什么? 我发现它的等价物是分别运行每一个: 但是我不能并行运行脚本。 如何使用多个脚本

  • 问题内容: 如果我在bash中运行,结果将是两个命令都运行。但是,如果我使用子进程,则将运行第一个命令,打印出该行其余部分的全部内容。下面的代码回显而不是,我如何才能运行两个命令? 问题答案: 您必须在子进程中使用shell = True,而不能使用shlex.split: 返回:

  • 问题内容: 如何使用线程和子流程模块产生并行bash流程?当我启动线程时,这里的第一个答案是:如何在Python中使用线程?,bash进程按顺序运行,而不是并行运行。 问题答案: 你不需要线程来并行运行子流程: 为了限制并发命令的数量,可以使用线程并提供与使用进程相同的接口: 该答案演示了限制并发子进程数的各种技术:它显示了,线程+基于队列的解决方案。 你可以限制并发子进程的数量,而无需使用线程/

  • 本文向大家介绍Python使用多进程运行含有任意个参数的函数,包括了Python使用多进程运行含有任意个参数的函数的使用技巧和注意事项,需要的朋友参考一下 1. 问题引出 许多时候,我们对程序的速度都是有要求的,速度自然是越快越好。对于Python的话,一般都是使用multiprocessing这个库来实现程序的多进程化,例如: 我们有一个函数my_print,它的作用是打印我们的输入: def