Поиск и замена строк в CSV с двойными кавычками с использованием Python - PullRequest
0 голосов
/ 09 января 2019

Мне нужно обработать некоторые файлы .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 вместо любого решения командной строки. Кроме того, эти файлы очень большие, поэтому я зацикливаюсь на строках, а не загружаю все это в память.

Ответы [ 2 ]

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

Благодаря @ 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 голосов
/ 09 января 2019

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

import re
newline = re.sub(r'^"$', '"""', line)
...