如何使用python转到/访问主目录子流程运行()

2024-06-23 19:16:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用python3subprocess.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)

Tags: runimport命令脚本homeasstderrstdout
2条回答

@SunBear尝试添加shell=True。因为子进程找不到test cmd cd,所以它在前面对您不起作用。你知道吗

要了解更多关于shell=True的信息,您可以访问这里Actual meaning of 'shell=True' in subprocess

您可以使用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)

相关问题 更多 >

    热门问题