【发布时间】:2012-11-29 03:12:08
【问题描述】:
我正在尝试执行以下代码行:
subprocess.call(["java", "-cp", "/home/me/somepath/file.jar", ..., "-someflag somevalue"])
代码失败,我尝试运行的 jar 提供了使用信息。但是,如果我展开字符串并将其粘贴到终端中,它就可以工作(我知道我正在正确展开字符串,因为 sh 模块在出错时将它吐回给我)。所以这是 subprocess 或 sh 如何操作的问题。
以下是您应该如何使用它的示例:
subprocess.call(["ls", "-l"])
这里是描述:
subprocess.check_call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
所有调用都需要args,它应该是一个字符串,或者一个序列 程序参数。提供一系列参数通常是 首选,因为它允许模块处理任何需要的 转义和引用参数(例如,允许文件中的空格 名称)。如果传递单个字符串,则任一 shell 必须为 True(请参阅 下面),否则字符串必须简单地命名要执行的程序 不指定任何参数。
http://docs.python.org/2/library/subprocess.html
我不清楚是否应该将列表中的字符串与不同位置的标志和值分开。
【问题讨论】:
-
你遇到了什么错误?
-
我正在从程序中获得有关指定参数的正确方法的帮助。
-
将
"-someflag somevalue"拆分为"-someflag", "somevalue"看看是否有帮助。
标签: python bash subprocess