Python CSV: удалить кавычки из значения - PullRequest
11 голосов
/ 21 января 2011

У меня есть процесс, в котором файл CSV можно загрузить, отредактировать и снова загрузить.При загрузке файл CSV находится в правильном формате, без двойных кавычек переноса

1, someval, someval2

Когда я открываю CSV в электронной таблице, редактирую и сохраняю, он добавляет двойные кавычки вокруг строк

1, "someEditVal", "someval2"

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

Я почти уверен, что библиотека CSV в python знает, как с этим справиться, но не уверен, как его использовать ...

РЕДАКТИРОВАТЬ Когда я использую значения в словаре, они получаются следующим образом

{'header':'"value"'}

Спасибо

Ответы [ 3 ]

16 голосов
/ 21 января 2011

Для вашего примера, следующие работы:

import csv
writer = csv.writer(open("out.csv", "wb"), quoting=csv.QUOTE_NONE)
reader = csv.reader(open("in.csv", "rb"), skipinitialspace=True)
writer.writerows(reader)

Возможно, вам придется поиграть с опциями диалекта читателя и писателя CSV - см. Документацию модуля csv .

10 голосов
/ 21 января 2011

Спасибо всем, кто пытался мне помочь, но я понял это. Указывая читателя, вы можете определить цитату

csv.reader(upload_file, delimiter=',', quotechar='"')

Обрабатывает кавычки строк.

5 голосов
/ 02 мая 2017

Для Python 3 :

import csv
writer = csv.writer(open("query_result.csv", "wt"), quoting=csv.QUOTE_NONE, escapechar='\\')
reader = csv.reader(open("out.txt", "rt"), skipinitialspace=True)
writer.writerows(reader)

Оригинальный ответ дает эту ошибку в Python 3. Также смотрите этот SO для деталей: csv.Error: итератор должен возвращать строки, а не байты

Traceback (последний вызов был последним): Файл "remove_quotes.py", строка 11, в writer.writerows (считыватель) _csv.Error: итератор должен возвращать строки, а не байты (вы открывали файл в текстовом режиме?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...