2015-02-26 5 views

ответ

1

Вы используете трубу, поэтому ее нужно запустить в оболочке. Поэтому просто используйте форму строки и не забудьте указать shell=True. Что касается цитируемости, то проще всего использовать тройную процитировать:

cmd = """df -Ph | awk 'NR>=2 {print $6","$5","$4}'""" 
+0

Работал. Большое спасибо за это. – jasmaar

1

Просто subprocess передать его в оболочку, установив shell=True:

subprocess.call('''df -Ph | awk 'NR>=2 {print $6","$5","$4}'''', shell=True) 
+0

Работает с тройными двойными кавычками - как показано в решении Кинделлс - вместо сингла. Спасибо за ответ. – jasmaar

0

Привет вы также можете сделать так. Не забудьте импортировать подпроцесс

import subprocess 
def linuxOperation(): 
p = subprocess.Popen(["df","-Ph"], stdout=subprocess.PIPE) 
p2 = subprocess.Popen(["awk",'NR>=2 {print $6","$5","$4}'], stdin=p.stdout, stdout=subprocess.PIPE, universal_newlines=True) 
p.stdout.close() 
out,err = p2.communicate() 
print(out) 


linuxOperation() 
Смежные вопросы