Запись точки с запятой, содержащей строку, в CSV с помощью «,» в качестве разделителя по-прежнему вызывает разделение в CSV-файле

#python #python-3.x #csv #delimiter #write

#python #python-3.x #csv #разделитель

Вопрос:

Я хочу записать строки, содержащие точки с запятой, в CSV.

Это то, что у меня есть:

 name = ["Peter;Parker"]
 
file = open("Test.csv", "a", newline='')
writer = csv.writer(file, delimiter=',')
writer.writerow(name)
  

Итак, проблема в том, что я хочу полное имя строки в столбце 1, но на самом деле точка с запятой разделяет часть до и после на столбец 1 и столбец 2

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

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

2. @snakecharmerb Да в электронной таблице, так вы говорите, что проблема не в стороне вывода Python, а в самой программе csv-файла?

3. Да, возможно. Похоже, что ваш файл представляет собой csv с одним столбцом, поэтому, если программа электронной таблицы находит потенциальный разделитель внутри столбца, она предполагает, что это разделитель столбцов. Это можно настроить в диалоговом окне импорта. Например, вот диалоговое окно импорта для libreoffice calc: imgur.com/a/7zvvTK7

Ответ №1:

Итак, комментарий от @snakecharmerb был правильным. В моем случае я пытался открыть файл csv с помощью Excel, а Excel имеет точку с запятой в качестве разделителя по умолчанию.

Вместо двойного щелчка по файлу csv для открытия Excel вы можете проверить правильность исходного текста, отредактировав файл с помощью блокнота. Если вы хотите открыть его с помощью Excel, вам нужно загрузить пустой файл Excel и перейти к Data и import из Text. Теперь загрузите файл csv, и вас спросят, какой разделитель вы хотите использовать, нет, вы можете отменить выбор точки с запятой и выбрать «нет» или просто ,