Я получаю отформатированный CSV-файл с двойными кавычками вокруг текстовых полей, которые содержат запятые.
Увы, мне нужно загрузить его в SQL Server, который, насколько я понял (расскажите, пожалуйста, в чем я здесь не прав), не может обрабатывать заключенные в кавычки поля, содержащие разделитель.
Итак, я хотел бы написать скрипт на python, который а) преобразует файл в разделитель каналов и б) удаляет все каналы, существующие в полях (я чувствую, что запятые встречаются чаще, поэтому я бы хотел чтобы сохранить их, у меня также есть несколько числовых полей, которые, по крайней мере, в будущем, могут содержать запятые).
Вот код, который я должен сделать:
import csv
import sys
source_file=sys.argv[1]
good_file=sys.argv[2]
bad_file=sys.argv[3]
with open(source_file, 'r') as csv_file:
csv_reader = csv.DictReader(csv_file)
with open(good_file, 'w') as new_file:
csv_writer = csv.DictWriter(new_file, csv_reader.fieldnames, delimiter='|')
headers = dict( (n,n) for n in csv_reader.fieldnames)
csv_writer.writerow(headers)
for line in csv_reader:
csv_writer.writerow(str.replace(line, '|', ' '))
Как я могу увеличить его, чтобы сделать b?
ps - я использую python 2.6, IIRC.