Yani belirli bir makinede ilk 3 CPU "yoğun" süreçleri için sorgulamak çalışıyorum ve bunu yapmak için bu kabuk komutu bulundu: ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
boru
kullanmak istediğim Bu veri bir Python betiği içinde, bu yüzden yukarıdaki komutun çıktısını subprocess
modülü üzerinden yakalayabilmem gerekiyor. işleri takip, ama sadece ben ilk 3'e kadar kısıtlamadan değilim beri büyük bir dize döndürür: Pek emin değilim
psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
nasıl bu subprocess.check_output
çalışır .. Denedim yetersiz bir girişim: bana bir hata verir
subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])
: ps: illegal argument: |
nasıl Python içindeki boru |
sembolü kullanmak veya başka kullanırım psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
tarafından döndürülen dev dizede inanılmaz miktarlarda ayrıştırma yapmak zorunda kalmadan sıralama yapmak için?
Teşekkürler! Selamlar, -kstruct
Sen borularla kodunuzu içeren bir kabuk yazabilirim sonra altişlem modülünden böyle hitap – jedwards