странное поведение при хранении файлов csv

#csv #double-quotes

#csv #двойные кавычки

Вопрос:

Я получаю эту странную проблему при сохранении результатов в файле csv.

 summary = site.select('.//*[contains(@class, "summary")]/p/text()').extract()
description = ""
                    while (len(summary) != 0):

                        description = description   summary.pop(0).encode('utf-8')
                    description = str(description)

                    item['Description'] = description
  

Поэтому меня беспокоит столбец Описания. Я извлекаю эти результаты в формате csv. Если я открою его в Excel, результаты отображаются нормально. Но когда я открываю его с помощью wordpad, я вижу, что для некоторых данных описания str имеет двойные кавычки в начале и конце строки, тогда как в некоторых случаях двойные кавычки отсутствуют.

Есть идеи, почему такое странное поведение

Комментарии:

1. Просто распечатать все описания, проходящие через код? В вопросе отсутствует контекст, как можно повторить эту проблему, и, следовательно, он здесь не отвечает.

2. предоставьте текстовый файл для тестирования

Ответ №1:

Это НЕ странное поведение, оно вполне ожидаемо. Wordpad является текстовым процессором и не будет пытаться интерпретировать ваш .Файл CSV не больше, чем файл .TXT. Каждая строка в файле обрабатывается просто как строка текста. Однако Excel интерпретирует запятые (или точки с запятой, в зависимости от локали) как разделители полей. Он также интерпретирует «двойные кавычки» как механизм, предотвращающий измельчение поля, содержащего разделители. Пример:

Файл:

 Tom, Dick, and Harry,en
Zhang san, Li si,zh
"Tom, Dick, and Harry",en
"Zhang san, Li si",zh
  

Как загружено Excel:

 A                      B      C           D
Tom                    Dick   and Harry   en
Zhang san              Li si  zh
Tom, Dick, and Harry   en
Zhang san, Li si       zh