#python #subprocess
Вопрос:
txt = subprocess.run(['$profile'],
shell=True, capture_output=True, text=True)
print(txt.stderr)
У меня возникли некоторые проблемы с модулем подпроцесса. Я выделил по крайней мере одного из них.
Насколько я понимаю, этот код должен просто ввести $profile в PowerShell. Это должно возвращать путь в виде строки. Однако код ошибки, который я фиксирую, следующий (переведен): команда «$profile» либо написана с ошибкой, либо не найдена.
Кроме того, запуск » dir «работает, тогда как запуск» Get-ChildItem » возвращает ту же ошибку.
Не мог бы кто-нибудь, пожалуйста, объяснить мне проблему?
Комментарии:
1. Из документов: «В Windows с shell=True переменная среды COMSPEC указывает оболочку по умолчанию».
Ответ №1:
shell=True
вероятно, используется cmd.exe
в качестве оболочки, а не PowerShell.
Если вы ищете каталог профиля текущего пользователя,
os.environ["USERPROFILE"]
я получу это в Windows.