Загруженные данные FTP содержат буквальный Unicode, такой как \ x00 и \ n - PullRequest
0 голосов
/ 14 мая 2019

В настоящее время я пытаюсь запустить парсер для группы файлов при синтаксическом анализе файла, который загружается из браузера и загружается в парсер, я не получаю ошибок, так как это обычный текстовый файл.

Но, когда я получаю данные с сервера через Python ftplib, я получаю данные в другом формате.Пример - дополнительные символы \x00 и 'b' внутри моих данныхВажно, чтобы данные были целостными, так как я работаю со структурой базы данных COBOL, которой нельзя манипулировать ни в малейшей степени, иначе это разрушит весь магазин.

Я успешно загружаю, используя следующие функции:

data = []
def handle_binary(more_data):
    data.append(str(more_data))

def get_file(filename):
    resp = ftp.retrbinary("RETR {0}".format(filename), callback=handle_binary)
    file = "".join(data)
    # returning the data as well as saving it to inspect
    save = open("save.txt", "w+")
    save.write(file)
    save.close()
    return file

Я пытался изменить свой магазин с:

data.append(str(more_data))

На

data.append(more_data)

, а также изменил мою функцию соединения на b"", чтобы указатьприсоединение к байту, но после этого я получил ошибки.

Пример длинной строки данных, которой не было в исходной загрузке:

\x00\x00\x00'b'\x00\n

Редактировать: При сравнении кажется, чтозагруженные по FTP данные не имеют новых строк (что имеет смысл, поскольку в приведенном выше пропущенном символе есть новая строка), как и загруженная копия.

Спасибо за любую помощь по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...