标题:[求助]请协助看看这个语句的输出对不对
只看楼主
卜酷塔2
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-3-29
 问题点数:0 回复次数:3 
[求助]请协助看看这个语句的输出对不对
count2.py
#! /usr/bin/python
import os
import sys
import subprocess
import time

input='ps -ef | grep ' + sys.argv[1] +' | grep -v grep | wc -l'
a=os.popen(input).read()
time.sleep(1)
b=os.popen(input).read()
c= int(a) + int(b)
print a,b,c

说明如下:
该语句为查询系统中是否存在某个进程,如果存在返回1,输出两个返回值相加结果
存在问题:
执行该代码添加一个不存在的进程时,a,b均显示1(应该显示0),是我的逻辑有问题,还是写法有问题。



搜索更多相关主题的帖子: 查询系统 
2017-03-29 09:57
卜酷塔2
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-3-29
得分:0 
太冷清了吧。
使用commands问题依旧
另:
python编辑器中返回结果正常
跑脚本出现问题。

#! /usr/bin/python
import os
import sys
import subprocess
import time
import commands

x=sys.argv[1]
print x
input='ps -ef |grep '+str(x)+' | grep -v grep | wc -l'
print input
a=commands.getoutput(input)
print "this is a",a
time.sleep(1)
b=commands.getoutput(input)
print "this is b",b
c= int(a) + int(b)
print c
2017-03-29 12:42
test3026
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-4-6
得分:0 
太冷清了吧。
使用commands问题依旧
另:
python编辑器中返回结果正常
跑脚本出现问题。

#! /usr/bin/python
import os
import sys
import subprocess
import time
import commands

x=sys.argv[1]
print x
input='ps -ef |grep '+str(x)+' | grep -v grep | wc -l'
print input
a=commands.getoutput(input)
print "this is a",a
time.sleep(1)
b=commands.getoutput(input)
print "this is b",b
c= int(a) + int(b)
print c
2017-04-06 15:42
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
得分:0 
input是关键字,还是避免被挪作他用吧……
你这个是因为os.popen打开的是管道,管道也是一行,所以wc -l肯定要多记一行的数,最简单的改法:

程序代码:
#! /usr/bin/python
import os
import sys
import time

cmd='ps -ef | grep ' + sys.argv[1] +' | grep -v grep | wc -l'
a=int(os.popen(cmd).read())-1
b=int(os.popen(cmd).read())-1
c= a + b
print(a,b,c)


另外我个人认为这个最好还是用bash写……

除了基础……我什么都不会……
2017-04-24 13:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475612-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.083874 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved