Python:如何在返回有效的字符串变量后使脚本继续

时间:2012-07-17 15:39:55

标签: python

我在python中有一个关于定义流的问题:

def testCommandA () :
  waitForResult = testCommandB ()
  if result != '' :
     print 'yay'

有没有办法让waitForResult等待testCommandB返回一些东西(不只是一个空字符串)?有时testCommandB不会产生任何内容(空字符串),我不想传递空字符串,但是当我在waitForResult中得到一个字符串时,testCommandA将继续运行。有可能吗?

提前致谢

2 个答案:

答案 0 :(得分:3)

# Start with an empty string so we run this next section at least once
result = ''
# Repeat this section until we get a non-empty string
while result == '':
    result = testCommandB()
print("result is: " + result)

请注意,如果testCommandB()未阻止,则会导致100%的CPU利用率,直到完成为止。检查之间的另一个选项是sleep。这个版本每十分之一秒检查一次:

import time

result = ''
while result == '':
    time.sleep(0.1)
    result = testCommandB()
print("result is: " + result)

答案 1 :(得分:1)

只是从testCommandB返回它不是空字符串的地方。即,testCommandB阻止,直到它具有有意义的值。