Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2012 15:05:16

exact2007
Зарегистрирован: 2012-10-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование батовой записи в крякозяблы

Функция str до последнего момента все хранит в наборе байтов (как надо), но при return ‘\r\n’.join(flattened) все сбивается и выдает крякозяблы… такое чувство, что питон зачем то произвел encode.. Почему и как это отменить?

Content-Disposition: file; name="file"; filename="dd.docx" Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
XKnDUContent_Types].xml (Tn0W?D8H` A*)Yl 1iJ/z,'nVK~)am j0HuT9bx<9X Q 8AO1~qk I~8WZ"V0}>uQwHoP!N_UZB_%D[S+?#[.z9>$N{9+P9Y vuGDoR _rels/.rels (JA Х{дальше в том же духе}

    def __str__(self):
        """Return a string representing the form data, including attached files."""
        # Build a list of lists, each containing "lines" of the
        # request.  Each part is separated by a boundary string.
        # Once the list is built, return a string where each
        # line is separated by '\r\n'.
        parts = []
        part_boundary = '--' + self.boundary
        # Add the form fields
        parts.extend(
            [ part_boundary,
              'Content-Disposition: form-data; name="%s"' % name,
              '',
              value,
            ]
            for name, value in self.form_fields
            )
        # Add the files to upload
        parts.extend(
            [ part_boundary,
              'Content-Disposition: file; name="%s"; filename="%s"' % \
                 (field_name, filename),
              'Content-Type: %s' % content_type,
              '',
              body,
            ]
            for field_name, filename, content_type, body in self.files
            )
        # Flatten the list and add closing boundary marker,
        # then return CR+LF separated data
        flattened = list(itertools.chain(*parts))
        flattened.append('--' + self.boundary + '--')
        flattened.append('')
        return '\r\n'.join(flattened)        
    

Офлайн

#2 Окт. 19, 2012 16:13:10

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Преобразование батовой записи в крякозяблы

Нельзя так просто взять и прочитать docx. Это архив

Офлайн

#3 Окт. 19, 2012 16:17:00

exact2007
Зарегистрирован: 2012-10-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование батовой записи в крякозяблы

Я и не собирался читать для получения информации. Мне нужно передать данный файл на другой сервер

Офлайн

#4 Окт. 19, 2012 16:57:16

adray
Зарегистрирован: 2012-09-15
Сообщения: 123
Репутация: +  18  -
Профиль   Отправить e-mail  

Преобразование батовой записи в крякозяблы

encode вызывается при выводе в stdout. Чтобы вывести байтовое представление строки можно использовать repr

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version