0

我在 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

如何使用换行符正确更新文件?

4

2 回答 2

1

您可能想尝试发送"\r\n\r\n"而不是"\n\n".

于 2012-02-15T19:01:55.223 回答
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'
于 2012-02-15T19:34:55.377 回答