我在ftplib中编写了一个函数append_line()
(基于storelines()):
def append_line(self, cmd, string):
self.voidcmd('TYPE A')
conn = self.transfercmd(cmd)
conn.sendall(string)
conn.close()
return self.voidresp()
我打电话的时候:
ftp.append_line("APPE " + "Text.dat", "This is my string\n\n")
它会将字符串附加到提到的文件,但忽略换行符。因此,socket.sendall
忽略了字符\n
。
如何使用换行符正确更新文件?
答案 0 :(得分:1)
您可以尝试发送"\r\n\r\n"
而不是"\n\n"
。
答案 1 :(得分:1)
看起来你有一个不同的问题。当我尝试使用你的字符串sendall时,它似乎工作:
客户代码:
from socket import *
s=socket(AF_INET, SOCK_STREAM)
s.connect(("localhost", 6789))
string = "This is my string\n\nAFTER_IT"
s.sendall(string)
服务器代码:
from socket import *
s=socket(AF_INET, SOCK_STREAM)
s.bind(("", 6789))
s.listen(8)
(c, a) = s.accept()
data=c.recv(1000)
data # Displays 'This is my string\n\nAFTER_IT'