命令执行目录

3 投票
3 回答
1554 浏览
提问于 2025-04-16 14:42

我需要用 Python 的 subprocess 来执行一个命令。

默认情况下,这个命令是在 Python 脚本文件所在的目录下执行的,比如说:

 subprocess.Popen(shlex.split("ls -l"))

这会列出脚本文件所在目录里的文件。

但是我想让这个命令在另一个目录下执行,比如说,目录 B。

我该怎么做呢?

我试过这样做,但失败了:

env['PWD'] = "/data/a"
f = tempfile.TemporaryFile('w+b')
p = subprocess.Popen(shlex.split(cmd),stdout= f,stderr=f,env=env)

3 个回答

0

嗨,你试过换一下这个Unix命令吗?

ls -l 

可以试试像这样改一下:

ls -l /usr/share;
1

你可以使用 os.chdir 这个方法,或者在 Popen 中使用 cwd 这个参数。

0

ls -l 是一个命令,用来列出当前目录下的所有文件和文件夹。默认情况下,它会显示你现在所在的文件夹里的内容。如果你想查看其他目录的内容,可以用 ls -l /你的路径 这个命令来指定你想查看的目录。

撰写回答