• Как поместить многострочный текст в одну ячейку в CSV?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Формат CSV не очень предназначен для многострочных ячеек. Я бы сказал, он это не поддерживает. Пишите сразу в экселевский формат https://xlsxwriter.readthedocs.io/index.html
    Ответ написан
    Комментировать
  • Как поместить многострочный текст в одну ячейку в CSV?

    @devdb
    Отвечая на вопрос в заголовке:
    Закодировать текст так, чтобы в нём не осталось недопустимых символов, т.е. символов, которые используются в самом формате хранения как управляющие символы. Можно применить percent-encodig, можно JSON, можно base64. И возможно лучше сразу сохранять данные в БД или Excel таблицу.

    Но, если нужно, чтобы текст оставался максимально читабельным (например, чтобы его можно было поправить вручную в редакторе), например для формата csv, который часто поэтому и выбирается, то можно воспользоваться таким трюком:

    s = "aaa\n\nbbb\tccc"  # Строка с запрещёнными символами
    rs = repr(s)  # "Закодированная" строка: "'aaa\\n\\nbbb\\tccc'"
    
    # Чтобы раскодировать:
    import ast
    decoded = ast.literal_eval(rs)
    
    
    >> print(s)
    aaa
    
    bbb     ccc
    
    >> print(rs)
    'aaa\n\nbbb\tccc'
    
    >> print(decoded)
    aaa
    
    bbb     ccc
    Ответ написан
    Комментировать