python - 为什么这个 dos 命令在 python 中不起作用?

标签 python subprocess

我尝试将一些 dos 命令从我的批处理文件移动到 python 中,但出现此错误,对于以下语句,文件名、目录名或卷标语法不正确。

subprocess.Popen('rd /s /q .\ProcessControlSimulator\bin', shell=True, 
                  stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

如果我只是将该 dos 命令复制到窗口控制台,它就可以工作。 os.getcwd() 给了我预期的工作目录。

我的问题是: 1.这是为什么呢? 2.如何避免?我是否需要获取当前工作目录并为该命令构建一个抽象路径?怎么做?

谢谢

最佳答案

\(反斜杠)是字符串常量中的转义字符,因此您的字符串最终会更改。在字符串常量中使用双 \(如 \\):

subprocess.Popen('rd /s /q .\\ProcessControlSimulator\\bin', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

关于python - 为什么这个 dos 命令在 python 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2102452/

相关文章:

python-3.x - 元组的连接

python - 使用 subprocess.call 在内存中收集 stderr

python - 用 Python 编写的反向 shell 脚本的 Rust 等价物是什么?

java - 在 Java 中获取并存储子进程的输出

python - 使用自定义采样率将 Mp3 转换为 Wav

python - Django Selenium 测试,创建用户并检查登录

python - 如果我在自己的python软件包中使用了numpy并分发了自己的软件包,那么我应该包括numpy许可证吗?

java - 无需任何安装即可将桌面流式传输到网络

python - 如何在Python中将一维径向轮廓转换为二维数组

python - 从 python 启动 Abaqus 作业