Python subprocess.call 与 cwd 不工作
Posted
技术标签:
【中文标题】Python subprocess.call 与 cwd 不工作【英文标题】:Python subprocess.call with cwd not working 【发布时间】:2017-09-24 10:29:41 【问题描述】:我尝试了各种各样的东西,没有一个工作。 以下是我的尝试:
subprocess.call(['cordova-test android tests --app platforms/android/build/outputs/apk/android-debug.apk --device-name=emulator-5554 --no-compile'],
cwd = ['/Users/User/Documents/dev/engineerappcopy'], shell = True)
下一个
subprocess.call(['cordova-test android tests --app platforms/android/build/outputs/apk/android-debug.apk --device-name=emulator-5554 --no-compile'],
cwd = shlex.split(['/Users/User/Documents/dev/engineerappcopy'])
下一个
subprocess.call(['cordova-test android tests --app platforms/android/build/outputs/apk/android-debug.apk --device-name=emulator-5554 --no-compile'],
cwd = ['/Users/User/Documents/dev/engineerappcopy'])
【问题讨论】:
会发生什么?有什么错误? 问题是什么? 这与标签cmd有什么关系? 【参考方案1】:首先,参数行必须是字符串(可选带空格)或参数列表,但不能将命令行作为唯一参数。
那么,当前工作目录必须是一个字符串,而不是一个列表。
试试这个:
subprocess.call(['cordova-test','android','tests','--app','platforms/android/build/outputs/apk/android-debug.apk','--device-name=emulator-5554','--no-compile'],
cwd = '/Users/User/Documents/dev/engineerappcopy')
【讨论】:
我认为这适用于,shell = True 最后。抛出其他明智的未知目录。然而什么也没发生......但我认为你现在解决了它,谢谢Jean 好的,shell=True
它是,当命令是别名或函数(或内置)时。很高兴它成功了。以上是关于Python subprocess.call 与 cwd 不工作的主要内容,如果未能解决你的问题,请参考以下文章
subprocess.call() 如何与 shell=False 一起工作?
从Python subprocess.call的输出中的列获取值
Python, subprocess, call(), check_call 和 returncode 来查找命令是不是存在