2016-07-06 3 views
-2

저는 파이썬에 대해 아주 익숙하고 현재 한 가지 문제가 있습니다. BASH에서이 작업을 수행 할 수 있지만 파이썬을 배우고 싶습니다.
원격 서버에서 실행 된 명령의 출력에 대해 수학 연산을 수행해야합니다.Python 2.7 출력에서의 연산 작업

if argument == "hosts": 
    output = [] 
    output.append(os.popen("ssh -q -o ConnectTimeout=40 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no %s cat /home/rb6873/oraclevm | cut -d\| -f3 | cut -d\= -f2 " % host).read().rstrip('\n')) 
    print(host) 
    for row in output: 
     print(row) 

이제 어떻게해야할지 모르겠다. 해결책을 찾고자했지만 실패했습니다.

이 경우 출력은 ['50 \ n100 \ n75 ']이며 유형은 목록입니다. 이것은 단지 예일 뿐이며,이 출력의 길이는 서버마다 다릅니다.

내가하고 싶은 것은 간단한 수학을하는 것입니다 -이 출력에서 ​​줄/줄을 요약하십시오.

누군가 내 문제를 해결하는 방법을 말해 줄 수 있습니까? 아니면 적어도 올바른 방향으로 나를 가리키게 할 수 있습니까?

안부, 월

+0

이미 시도해 보셨나요? 당신은이 응답을 분석 할 필요가 있습니다. (정수는 \ n만큼 분리되어 있습니다.) –

+0

정확히 무엇이 문제입니까? 무엇을 시도 했습니까? 어디에서 붙잡습니까? 처음에는 문제를 풀려고 노력한 것이 아니라고 생각합니다. – skyking

+0

목록에 넣으면 claro입니다. 요약 문자열 의미 : 라인 끝 문자를 계산? ... 또는 라인 엔드 챠커를 나누고, 엔트리를 숫자로 해석하고,이를 예제로 요약 해 보겠습니다. 보다 구체적인 질문을 제안하십시오. 감사합니다 (그리고 언급 한 서버 호출에서 "출력"에 걸친 분산을 제공합니다) – Dilettant

답변

0

이러한 입력의 합계 각 입력 라인이 목록의 요소가되도록, 당신은 단지의 (a), deadlines()popen 호출 read()을 대체 할 것을 얻으려면, (b) sum(int(x) for x in output)으로 합계를 계산하십시오.

if argument == "hosts": 
    lines = os.popen(...).readlines() 
    print(sum(int(x) for x in lines)) 

하지만 어떻게 작동하는지 설명 할 수 없기 때문에이 답변은 여러분에게 파이썬으로 작업하는 것에 대해 많이 가르쳐주지는 않습니다. the python tutorial을 읽으면 훨씬 쉽게 찾을 수 있습니다. 즉시 Python 3로 전환하십시오. 왜 언어의 오래된 버전을 배우고 있습니까?