我使用subprocess.call()来执行特定目录中的命令。
不使用shell = True
scrcpyPath = "C:\\Users\\H\\Downloads\\scrcpy-win64-v1.14"
subprocess.call(["scrcpy", "--window-title", "'Mydevice'"], cwd = scrcpyPath)
我得到以下错误
FileNotFoundError: WinError 2系统找不到指定的文件。
我已经设法用` `shell = True‘让它工作了。
subprocess.call(f"scrcpy --window-title 'Mydevice'", cwd = scrcpyPath, shell = True)
但是当我在窗口标题Mydevice
中添加空格时,它停止工作。
subprocess.call(f"scrcpy --window-title 'My device'", cwd = scrcpyPath, shell = True)
我得到以下错误
错误:意外的附加参数: 1‘
我使用格式化字符串的原因是,我希望窗口标题是一个变量,但同样,当我添加空格时,它不起作用。
subprocess.call(f"scrcpy --window-title 'Device {deviceName}'", cwd = scrcpyPath, shell = True)
我找到了解决方案。我想我错误地使用了cwd
。
subprocess.call([f"{scrcpyPath}\\scrcpy", "--window-title", f"'{deviceName}'"])
发布于 2020-07-02 19:51:05
您没有正确地拆分参数;基本上,命令行中的任何空格分隔都应该是单独的参数,并且当它们作为单独的参数传递时,不需要使用shell引号。你想要的是:
subprocess.call(["scrcpy", "--window-title", "Mydevice"], cwd=scrcpyPath)
https://stackoverflow.com/questions/62695545
复制相似问题