python - 如何使用 python subprocess 命令在不同目录中运行 shell 命令?

标签 python subprocess

我正在尝试执行 shell 命令,例如与我的 python 脚本不同的目录中的“ls”。我在直接从子进程的 python 代码更改目录时遇到问题。

最佳答案

subprocess 方法都接受 cwd 关键字参数。

import subprocess

d = subprocess.check_output(
    ['ls'], cwd='/home/you/Desktop')

显然,将 /home/you/Desktop 替换为您想要的实际目录。

大多数编写良好的 shell 命令不会要求您在任何特定目录中运行它们,但如果这是您想要的,那么您就可以这样做。

如果这不能解决您的问题,请更新您的问题以包含行为与您预期不同的实际代码。

(当然,子进程是获取目录列表的一种非常糟糕的方法,并且 ls is a really poor way to get a directory listing 如果您确实想使用子进程。可能会尝试 os.listdir('/home/you/Desktop' ) 如果这就是您真正想要的。但我猜您只是提供 ls 作为外部命令的示例。)

关于python - 如何使用 python subprocess 命令在不同目录中运行 shell 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64086194/

相关文章:

python - 意外列表追加

javascript - ng-repeat 将空白行返回到表中

python pandas合并多个csv文件

python - 从 subprocess.Popen 异步读取标准输出

linux - Python 2.7 子进程 : tail -f | grep

不同操作系统之间的Python turtlegraphics不一致

python - 垂直翻转图像,原始图像和新图像之间的关系。 [Python]

python-3.x - 如何使用 Sys 和 Subprocess 模块以及 Linux Bash 更改部分文件名

python - 从 python 调用 perl 脚本适用于commands.getstatusoutput 但不适用于 subprocess.call

Python 子进程引用导致 fd 耗尽