Я довольно новичок в Python. Когда я выполняю следующую команду, чтобы получить общее количество ядер процессора на моем сервере x86, используя следующий код python, я получаю ошибку, как показано ниже;Выполнять команды bash из python - OSError: [Errno 2]
########################Code#######################
#!/usr/bin/python
import os
import re
import subprocess
os.system('clear')
#CPU core count check
flag=0
p = subprocess.Popen(['cat /proc/cpuinfo | grep -i processor | wc -l'], stdout=subprocess.PIPE)
print p.communicate(1)
##############################Output####################
Traceback (most recent call last):
File "./chk_config.py", line 9, in <module>
p = subprocess.Popen(['cat /proc/cpuinfo | grep -i processor | wc -l'], stdout=subprocess.PIPE)
File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
os.popen
работает, но я не хочу использовать os.popen
, так как он печатает None
в конце общего количества ядра, которые я хочу, чтобы опустить/
Попробуйте использовать ваш ключ 'Enter' на клавиатуре ... Кроме того, вы можете cr eate, путем отступов с четырьмя пробелами. – ryugie
Отладить свою ошибку. Что выводит строка «cat/proc/cpuinfo | grep -i processor | wc -l» в командной строке? Можете ли вы выполнить строку «p = subprocess.Popen ([], stdout = subprocess.PIPE)», где - это ранее полученная информация? –
Это потому, что вы пытаетесь запустить литеральную программу под названием «cat/proc/cpuinfo | процессор grep -i | wc-1 '. –