我正在尝试执行 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/