有谁能告诉我如何摆脱这方面的线路?每次回显一个字符串时,都会有一个换行符。基本上是一个空角色。我怎么能摆脱它?
from socket import *
import threading
import thread
def handler(clientsock,addr):
while 1:
data = clientsock.recv(BUFSIZ)
if not data:
break
msg = data
print msg
clientsock.send(msg)
clientsock.close()
if __name__=='__main__':
host = 'localhost'
port = 20000
BUFSIZ = 1024
ADDR = (host, port)
serversock = socket(AF_INET, SOCK_STREAM)
serversock.bind(ADDR)
serversock.listen(2)
print 'Version 0.1','-',host,':',port
while 1:
clientsock, addr = serversock.accept()
print 'initiated',addr[0],'on',addr[1]
thread.start_new_thread(handler, (clientsock, addr))
答案 0 :(得分:3)
替换
print msg
与
sys.stdout.write(msg)
显然,import sys
位于顶部。出现换行的原因是因为易于使用print
会自动将其添加到每个打印件中。 sys.stdout.write
不会这样做。
答案 1 :(得分:0)
@nightcracker已经回答了这个问题,我只想留下另一个可能的解决方案。可以在print
语句后添加逗号以禁止在字符串后添加换行符。
print msg, # <- notice the comma
除非
,则这是唯一的操作'\n'
语句以逗号结尾,否则最后会写入