#python #linux #bash
#python #linux #bash
Вопрос:
У меня есть мой скрипт на Python, который
var1 = subprocess.Popen("pwd | grep 'home' ");
print var1
Но это выдает мне ошибку
Комментарии:
1. В дополнение к вышеприведенным вопросам, что вы пытаетесь сделать? Вероятно, есть лучший (встроенный) способ сделать это.
Ответ №1:
Вам нужно добавить shell=True
, если вы хотите, чтобы оболочка правильно интерпретировала канал:
var1 = subprocess.Popen("pwd | grep 'home' ", shell=True)
(Обратите внимание, что вам не нужна точка с запятой в конце строки.) Однако это может привести не к тому, что вы ожидаете, — это возвращает объект Popen, поэтому вам нужно проверить, var1.wait()
возвращает 0
он или нет.
Гораздо более простой способ, если вы просто хотите узнать, содержит ли текущий каталог ‘home’, — это выполнить:
if 'home' in os.getcwd():
print "'home' is in the current working directory's path"
Комментарии:
1. я получаю это <подпроцесс. Объект Popen в 0xb7ea0a6c>] . на самом деле я изучаю python и не знаю, с чего начать. есть ли какие-либо учебные пособия, которые могут помочь мне выполнять задачи Linux с помощью python
2. magazine.redhat.com/2008/02/07 / … (2-я ссылка в поиске Google для «замены python bash»)