Tamam, yani. Ben sadece bir df -h çıktı alır ve ekranda gösterir çok basit bir Python komut dosyası yazıyorum. Diğer bazı işlevselliği uygulayacağım ama bu kısım beni güldürüyor.Python altprocess.Popen stdout boşluk ekler ve terim
Kodumun doğru olduğundan eminim, belki de çıktı çok hızlı gidip gitmediğini görmek için time.sleep() ifadelerini ekledim. Ancak, strut ile yinelediğimde, rstrip() ile bile, terminal çıkışı her yeni bir satır oluşturulduğunda garip bir şekilde yerleştirilir ve terminali bozar.
Anythoughts? İşte
benim kod: Burada#!/usr/bin/python
import sys
import os
import re
import subprocess
import time
np1=subprocess.Popen('ssh -qt <redacted>/usr/bin/sudo df -h /opt/saswork', shell=True, stdout=subprocess.PIPE)
np2=subprocess.Popen('ssh -qt <redacted>/usr/bin/sudo df -h /opt/saswork', shell=True, stdout=subprocess.PIPE)
p1=subprocess.Popen('ssh -qt <redacted>/usr/bin/sudo df -h /opt/saswork', shell=True, stdout=subprocess.PIPE)
p2=subprocess.Popen('ssh -qt <redacted>/usr/bin/sudo df -h /opt/saswork', shell=True, stdout=subprocess.PIPE)
p3=subprocess.Popen('ssh -qt <redacted>/usr/bin/sudo df -h /opt/saswork', shell=True, stdout=subprocess.PIPE)
p4=subprocess.Popen('ssh -qt <redacted>/usr/bin/sudo df -h /opt/saswork', shell=True, stdout=subprocess.PIPE)
for x in np1.stdout:
x=x.rstrip()
x=re.findall('.\d%', x)
for y in x:
print "SAS Grid NP01 is at ", str(y)
time.sleep(1)
for x in np2.stdout:
x=x.rstrip()
x=re.findall('.\d%', x)
for y in x:
print "SAS Grid NP02 is at ", str(y)
time.sleep(1)
for x in p1.stdout:
x=x.rstrip()
x=re.findall('.\d%', x)
for y in x:
print "SAS Grid P01 is at ", str(y)
time.sleep(1)
for x in p2.stdout:
x=x.rstrip()
x=re.findall('.\d%', x)
for y in x:
print "SAS Grid P02 is at ", str(y)
time.sleep(1)
for x in p3.stdout:
x=x.rstrip()
x=re.findall('.\d%', x)
for y in x:
print "SAS Grid P03 is at ", str(y)
time.sleep(1)
for x in p4.stdout:
x=x.rstrip()
x=re.findall('.\d%', x)
for y in x:
print "SAS Grid P04 is at ", str(y)
çıktı üretmesi var
SAS Grid NP01 is at 33%
SAS Grid NP02 is at 36%
SAS Grid P01 is at 3%
SAS Grid P02 is at 23%
SAS Grid P03 is at 41%
SAS Grid P04 is at 24%
[<service account>@werindgatep01 ~]$
[<service account>@werindgatep01 ~]$
Ne bu noktada yapmanız gereken CTRL-C ve CTRL-D ise o hizmet hesabı çıkmama düşene kadar ve standart kullanıcı hesabım. Oradan su alabilirim - hizmet hesabı
Kayboldum. .
Bir sonraki sorunuzu sormadan önce, lütfen [ask] ve daha spesifik olarak [mcve] okuyun. Örnek programınızın boyutunu azaltmak ve yabancı unsurlardan kurtulmak, aldığınız cevapların kalitesini artıracaktır. –
Hangi İşletim Sistemini kullanıyorsunuz? Linux ise, hangi dağıtım ve sürüm? –
'print' ifadesi, yazdırdığı noktalar arasında boşluklar ekler. Virgülle ayrılmış listede her zaman için bir boşluk eklersiniz. Bunun daha iyi kontrolü için işlev formunu kullanın ya da 'sys.stdout.write()' yöntemini kullanın. – Keith