小编Iva*_*ski的帖子

doctest本地定义的函数

有没有办法doctest本地定义的功能?作为一个例子我想要

def foo():
  """ >>> foo()
  testfoo"""

  def foo2():
    """ >>> 1/0 """ 
    print 'testfoo'

  foo2()
Run Code Online (Sandbox Code Playgroud)

不通过测试.但我仍然不想让整个模块的foo2全局化......

python doctest

8
推荐指数
1
解决办法
1268
查看次数

使用SSH时,仅在终止时显示python脚本的输出?

我正在运行一个脚本来管理远程(SSH)计算机上的进程.我们称之为five.py

#!/usr/bin/python
import time, subprocess

subprocess.call('echo 0',shell=True)
for i in range(1,5):
   time.sleep(1)
   print(i)
Run Code Online (Sandbox Code Playgroud)

如果我现在跑

ssh user@host five.py
Run Code Online (Sandbox Code Playgroud)

我想看看输出

0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

逐秒出现在我的标准输出上(就像在本地执行时那样)..会发生什么:我立即从"echo"获得0,其余只在整个程序结束后立即出现.(无法将'five.py'嵌套到bash脚本中;通过'python five.py'调用它;或者使用'print >> sys.stdout,i').

这必须与python写入stdout的方式有关,因为其他程序表现得很正常.一个功能解决方法是

import time, subprocess
import sys

subprocess.call('echo 0',shell=True)
for i in range(1,5):
  time.sleep(1)
  sys.stdout.write(str(i)+'\n')
  sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

但是必须有一个比改变我所有的打印陈述更好的解决方案!

python ssh stdout

5
推荐指数
1
解决办法
2824
查看次数

标签 统计

python ×2

doctest ×1

ssh ×1

stdout ×1