我正在尝试抓取802.11信标并打印它们。打印添加一行,而stdout在通道之前/之后为随机空格添加前缀。任何想法如何让线条在没有换行的情况下向左冲洗?
def beacon_sniff(pkt):
try:
sta_oui = pkt.addr2[0:8] # Grab vendor OUI of BSSID
if pkt.subtype == 8:
if pkt.addr2 not in ap:
if pkt.info != "\x00\x00\x00\x00\x00\x00\x00\x00": #Filter out hidden SSID's
ap.append(pkt.addr2)
#print '{0:<7} \t {1:<32} \t {2:<20} \t {3:<10} \t {4:<10}'.format(int(ord(pkt[5].info)), pkt.info, pkt.addr2, -(256-ord(pkt[0].notdecoded[-4:-3])), get_vendor(sta_oui))
sys.stdout.write("{0:<7} \t {1:<32} \t {2:<20} \t {3:<10} \t {4:<10}".format(int(ord(pkt[5].info)), pkt.info, pkt.addr2, -(256-ord(pkt[0].notdecoded[-4:-3])), get_vendor(sta_oui)))
sys.stdout.flush()
except:
pass
标准输出:
6 TALKTALK-F148E8...
6 BTHub3-Z3KP...
1 BTWifi-X...
打印:
6 TALKTALK-F148E8...
6 BTHub3-Z3KP...
1 BTWifi-X...
答案 0 :(得分:1)
&#34;随机&#34;由于您在输出字符串中使用\t
,因此存在空格。大多数终端中的该字符将移至8的下一个倍数。
这意味着有时添加一个空格最终会增加7个空格。
答案 1 :(得分:0)
返回使用print
功能。为了防止在最后添加新行,请在print语句的末尾加上逗号。
这打印在两行:
print "Hello"
print "world!"
但是这会将它打印在同一行:
print "Hello",
print "world!"