Как перейти / получить доступ к домашнему каталогу, используя python subprocess.run () - PullRequest
0 голосов
/ 28 марта 2019

При использовании 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)

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

@ SunBear Попробуйте добавить shell=True. Это раньше не работало для вас, потому что подпроцесс не может найти компакт-диск test-cmd.

Чтобы узнать больше о shell=True, вы можете перейти сюда Фактическое значение 'shell = True' в подпроцессе

0 голосов
/ 28 марта 2019

Вы можете использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...