Python удаляет каждую двойную кавычку из csv

Привет, у меня есть файл csv, который выглядит следующим образом.

"AB" ; "AA" ; "BA" ; "HI"
"CD" ; "BB" ; "BC" ; "JK"
"EF" ; "CC" ; "CE" ; "LM"
"GH" ; "DD" ; "DG" ; "MN"

Как я могу получить следующий код, чтобы удалить все двойные кавычки из каждого столбца в файле csv, поскольку на данный момент он удаляет только первый столбец. Спасибо

import csv

f = open("wakhawakha.csv", 'rt')
try:
    for row in csv.reader(f, delimiter=' ', skipinitialspace=True):
        print('|'.join(row))
finally:
        f.close()

person Michal K    schedule 08.07.2015    source источник
comment
Также вы должны использовать with вместо try: ... finally: для открытия файлов. Оператор with сделает это за вас.   -  person Matt    schedule 08.07.2015


Ответы (3)


Откройте его и сначала прочитайте строку.

import csv

with open("wakhawakha.csv", 'rt') as f:
    data = f.read()
new_data = data.replace('"', '')
for row in csv.reader(new_data.splitlines(), delimiter=' ', skipinitialspace=True):
    print ('|'.join(row))
person Matt    schedule 08.07.2015

Это то, что вы хотели?

    for row in csv.reader(f, delimiter=';', skipinitialspace=True):
        print (''.join(row))
person Hrvoje    schedule 08.07.2015
comment
Здесь можно использовать дополнительный отступ. - person Alyssa Haroldsen; 08.07.2015
comment
Извините, я новичок в StackOverflow и все еще привыкаю к ​​интерфейсу. :) - person Hrvoje; 08.07.2015
comment
'Все в порядке. Похоже, @Michal K тоже забыл про некоторые отступы. - person Alyssa Haroldsen; 08.07.2015
comment
Спасибо за разделитель, но, к сожалению, он по-прежнему удаляет только первую строку. - person Michal K; 08.07.2015
comment
Можете ли вы предоставить ожидаемые входные данные с ожидаемыми и фактическими результатами? - person Alyssa Haroldsen; 08.07.2015
comment
Я попробовал это локально, и он удаляет все. Ваш отступ в порядке в исходном файле? - person Hrvoje; 08.07.2015

ИЗМЕНИТЬ Я заметил, что вы изменили отступ. Отступ в вашем OP был неправильным: теперь все в порядке:

f = open("wakhawakha.csv", 'rt')
try:
    for row in csv.reader(f, delimiter=' ', skipinitialspace=True):
        print ('|'.join(row))
finally:
    f.close()

Таким образом, вывод таков:

AB|;|AA|;|BA|;|HI
CD|;|BB|;|BC|;|JK
EF|;|CC|;|CE|;|LM
GH|;|DD|;|DG|;|MN

Это тот результат, который вы хотели? Или вы просто хотели убрать все двойные кавычки? Если это так, измените эту строку в своем коде:

print ('|'.join(row))

к этому:

print (' '.join(row))

Затем вы получите этот вывод:

AB ; AA ; BA ; HI
CD ; BB ; BC ; JK
EF ; CC ; CE ; LM
GH ; DD ; DG ; MN
person Joe T. Boka    schedule 08.07.2015