标准输出写入打印时添加空格前缀

2024-05-12 14:36:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试抓取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

标准输出:

^{pr2}$

打印:

6            TALKTALK-F148E8...

6            BTHub3-Z3KP...

1            BTWifi-X...

Tags: infoformatgetifstdoutintapvendor
2条回答

返回使用print函数。要防止它在末尾添加新行,请在print语句的末尾加一个逗号。在

这两行打印:

print "Hello"
print "world!"

但这是在同一行打印的:

^{pr2}$

之所以有“random”空格,是因为您在输出字符串中使用了\t。大多数终端中的那个字符将移动到下一个8的倍数。在

这意味着有时添加一个单独的空间最终会增加7个空间。在

相关问题 更多 >