Поиск и замена строк в CSV с двойными кавычками с использованием Python

1

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

def process_file():
  input_path = 'input.txt'
  output_path = 'output.txt'
  with open(input_path) as input_file, open(output_path, 'w+') as output_file:
    for line in input_file:
      newline = line.replace('"', '""""')
      output_file.write(newline)

Как я могу убедиться, что замена происходит только с одиночными символами и не заменяет, например, "" или """".

Я хотел бы использовать Python вместо любого решения командной строки. Кроме того, эти файлы очень большие, поэтому я зацикливаюсь на строках, а не загружаю все это в память.

  • 1
    Вы пытались использовать модуль csv ?
  • 0
    Можете ли вы показать пример того, как файл выглядит?
Показать ещё 6 комментариев
Теги:
csv
quotes

2 ответа

1

Благодаря @mkrieger1 и этому вопросу я смог собрать это решение:

def process_file():
  input_path = 'input.txt'
  output_path = 'output.txt'
  with open(input_path) as input_file, open(output_path, 'w+') as output_file:
    for line in input_file:
      newline = re.sub(r'(?<!")"(?!")', '""""', line)
      output_file.write(newline)
0

Вы можете использовать регулярное выражение:

import re
newline = re.sub(r'^"$', '"""', line)
  • 0
    Это будет действовать в строках, которые состоят только из одной кавычки, но я думаю, что здесь нет проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню