命令执行目录
我需要用 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 /你的路径
这个命令来指定你想查看的目录。