2015-07-08 3 views
2

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

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

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

import csv 

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

Кроме того, вы должны использовать 'with' вместо 'try: ... finally:' для открытия файлов. Оператор 'with' делает это за вас. – Matt

ответ

2

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

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)) 
3

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

for row in csv.reader(f, delimiter=';', skipinitialspace=True): 
     print (''.join(row)) 
+0

Там может быть использован дополнительный отступ. – Kupiakos

+0

Извините, я новичок в StackOverflow и все еще привык к интерфейсу. :) – Hrvoje

+0

'Прекрасно. Похоже, @Michal K забыл и некоторые отступы. – Kupiakos

0

EDIT Я заметил, что вы изменили отступа. Углубление в вашем 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 
Смежные вопросы