ftplib, socket.sendall () вводит символ новой строки - PullRequest
0 голосов
/ 15 февраля 2012

Я написал функцию append_line() в ftplib (на основе 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.

Как правильно обновить файл с помощью символа новой строки?

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Похоже, у вас другая проблема.Когда я пытаюсь отправить все с вашей строкой, она работает:

Код клиента:

    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'
1 голос
/ 15 февраля 2012

Вы можете попробовать отправить "\r\n\r\n" вместо "\n\n".

...