如何使用python subprocess.run()进入/访问主目录

问题描述 投票:0回答:1

使用python3 subprocess.run()时,我需要/访问我的主目录。我尝试了以下命令,但它们的语法不正确。请告诉我正确的语法,我应该使用。谢谢。

测试脚本:

import subprocess as sp
sp.run(['cd', '$HOME'], stdout=sp.PIPE, stderr=sp.PIPE)
sp.run(['cd', '${HOME}'], stdout=sp.PIPE, stderr=sp.PIPE)
sp.run(['cd', '~'], stdout=sp.PIPE, stderr=sp.PIPE)
python subprocess
1个回答
0
投票

你可以使用os.environ

home = os.environ['HOME']
import subprocess as sp
sp.run(['bash', 'cd', home], stdout=sp.PIPE, stderr=sp.PIPE)

这不会改变你的python解释器工作目录,为此你可能想要使用:

home = os.environ['HOME']
os.chdir(home)

如果您需要访问子目录,可以使用os.path.join获取路径:

home = os.environ['HOME']
subdir = 'Documents'  # or get the list of subdirs with os.listdir(home)
subdir_path = os.path.join(home, subdir)

0
投票

@SunBear尝试添加shell=True。它不适合您,因为subprocess找不到test-cmd cd。

要了解更多关于shell=True的信息,你可以去Actual meaning of 'shell=True' in subprocess

© www.soinside.com 2019 - 2024. All rights reserved.