Python написать в CSV с комами в каждом поле - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь экспортировать список строк в CSV, используя запятую в качестве разделителя. Каждое из полей может содержать запятую. Что я получаю после записи в CSV-файл, так это то, что каждая запятая рассматривается как разделитель.

Мой вопрос: можно ли игнорировать запятые (как разделители) в каждом поле?

Вот то, что я пытаюсь, в качестве примера.

import csv

outFile = "output.csv"
f = open(outFile, "w")

row = ['hello, world' , '43333' , '44141']

with open(outFile, 'w') as writeFile:
    writer = csv.writer(writeFile)
    writer.writerow(row)

writeFile.close()

Вывод выглядит так: outputObtained

Я хотел бы что-то вроде этого: outputExpected

Я думаю, что для решения этой проблемы можно использовать другой разделитель, как я читал на некоторых сайтах. Но мой вопрос заключается в том, есть ли способ решить эту проблему, используя запятые (',').

Спасибо

Ответы [ 3 ]

0 голосов
/ 25 января 2019

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

Возможно, это будет полезно:

https://tools.ietf.org/html/rfc4180#page-3

  1. Поля, содержащие разрывы строк (CRLF), двойные кавычки и запятые должны быть заключены в двойные кавычки. Например:

    "ааа", "б CRLF bb "," ccc "CRLF ZZZ, ууу, ххх

0 голосов
/ 25 января 2019

Вам просто нужно сказать Calc / Excel, что ваш символ цитирования "

0 голосов
/ 25 января 2019

Вы можете сделать .replace (',', ''), который заменит запятые в тексте пробелом (или что угодно еще.

Я не знаю, как сохранить запятую в тексте, но не позволить ей выступать в качестве разделителя, например, \, может быть? Кто-то еще мог бы пролить свет на это.

...