У меня есть файл csv, который я пытаюсь прочитать в python, обработать, а затем записать в другой файл csv.
Моя текущая проблема заключается в том, что, хотя файл разделен запятыми, не все запятые являются разделителями.
Только запятые, которым НЕ предшествует и/или после которых ставится пробел, должны считаться разделителями. (только ",", а не "," или ",").
Вот как выглядит мой код:
import csv
#open file for reading
with open(mypath, 'r', encoding = 'utf_8') as csvfile:
myfile = list(csv.reader(csvfile, dialect = 'excel', delimiter = ','))
#specifying columns to be deleted
BadCols = [29,28,27,25,21,20,19,18,16,15,14,13,12,11,8,7,4,3]
#Loop through column indices to be deleted
for col in BadCols:
#Loop through each row to delete columns
for i, row in enumerate(myfile):
#Delete Column, which is basically a list item at that row
myfile[i].pop(col)
#Open file for writing
with open(mypath2, "w", encoding = 'utf_8', newline='') as csvfile:
csv_file = csv.writer(csvfile, dialect = 'excel', delimiter = ',')
for i, row in enumerate(myfile):
for j, col in enumerate(row):
csvfile.write('%s, ' %col)
csvfile.write('\n')
csvfile.close
Вот как выглядят мои данные:
Date,Name,City
May 30, 2016,Ryan,Boston
Вот что я хотел бы видеть, когда я открываю файл с помощью Excel:
Date Name City
May 30, 2016 Ryan Boston
Вот что я на самом деле вижу в Excel:
Date [Blank column name] Name City
May 30 2016 Ryan Boston
Таким образом, дата читается как два элемента вместо одного.
Любая помощь будет принята с благодарностью.
line.rsplit(',', 2)
или тому подобным. +1 за ответ @padraic-cunningham - person Dilettant   schedule 23.06.2016