刷新字符串输出 [Python]
Flushing output of strings [Python]
我正在构建一个应该检查服务器是否在线的数据包发送工具。好吧,我想将 TCP 数据包发送到选定的服务器,同时显示当前发送的数据包数量。我有下面的脚本来做我想做的事,但它不太管用:/。我也有一些代码我试图修改以实现相同的目的,但它是一种不同类型的显示...
我的代码:
nums = []
nums.append(x + 1)
_range = ['_']
for _ in _range:
for x in nums:
# sys.stdout.write("\b Packet [ %s ] sent!" % x)
sys.stdout.write( " Packet [ %s ] sent!" % x )
sys.stdout.flush()
time.sleep(.5)
pass
和正确的代码:
#!/usr/bin/env python
import sys
import time
print "loading...\",
while True:
syms = ['\', '|', '/', '-']
bs = '\b'
for _ in range(5):
for sym in syms:
sys.stdout.write("\b%s" % sym)
sys.stdout.flush()
time.sleep(.5)
pass
print("\n")
我需要与正确代码相同的东西,除了它可以实时显示发送的数据包数量。示例:
数据包 [3] 已发送!
(之前的文本已清除)
数据包 [4] 已发送!
(之前的文本已清除)
数据包 [5] 已发送!
(之前的文本已清除)
等等...
我希望你能明白我在这里想要描述的内容。如果没有,请索取更多信息,我会尽力解释。对这个问题感到抱歉,我确定这是一个简单的修复,但老实说,我仍在学习 python.. :/
提前致谢!
您需要在 sys.stdout.write
:
中输入 \r
return
sys.stdout.write( " \rPacket [ %s ] sent!" % x )
这样下一次打印会覆盖它。
我正在构建一个应该检查服务器是否在线的数据包发送工具。好吧,我想将 TCP 数据包发送到选定的服务器,同时显示当前发送的数据包数量。我有下面的脚本来做我想做的事,但它不太管用:/。我也有一些代码我试图修改以实现相同的目的,但它是一种不同类型的显示...
我的代码:
nums = []
nums.append(x + 1)
_range = ['_']
for _ in _range:
for x in nums:
# sys.stdout.write("\b Packet [ %s ] sent!" % x)
sys.stdout.write( " Packet [ %s ] sent!" % x )
sys.stdout.flush()
time.sleep(.5)
pass
和正确的代码:
#!/usr/bin/env python
import sys
import time
print "loading...\",
while True:
syms = ['\', '|', '/', '-']
bs = '\b'
for _ in range(5):
for sym in syms:
sys.stdout.write("\b%s" % sym)
sys.stdout.flush()
time.sleep(.5)
pass
print("\n")
我需要与正确代码相同的东西,除了它可以实时显示发送的数据包数量。示例:
数据包 [3] 已发送!
(之前的文本已清除)
数据包 [4] 已发送!
(之前的文本已清除)
数据包 [5] 已发送!
(之前的文本已清除)
等等...
我希望你能明白我在这里想要描述的内容。如果没有,请索取更多信息,我会尽力解释。对这个问题感到抱歉,我确定这是一个简单的修复,但老实说,我仍在学习 python.. :/
提前致谢!
您需要在 sys.stdout.write
:
\r
return
sys.stdout.write( " \rPacket [ %s ] sent!" % x )
这样下一次打印会覆盖它。