#python
#python
Вопрос:
У меня проблема с разделением данных. У меня есть следующие данные в файле CSV:
"a";"b";"c;d";"e"
Проблема в том, что когда я использовал line.split(";")
функцию, она разделяется даже между c
и d
. Я не хочу, чтобы c
и d
были разделены. Позже мне нужно сохранить эти четыре значения в четырех разных столбцах таблицы, но с помощью этой функции я получаю пять разных столбцов.
Я хочу, чтобы результаты были "a" "b" "cd" "e"
.
Я пробовал с line.split('";"')
, но это не помогло.
Комментарии:
1. Используйте
csv
модуль для синтаксического анализа CSV-файла.2. Почему
;
междуc
d
должно быть удалено?
Ответ №1:
import csv
reader = csv.reader(open("yourfile.csv", "rb"), delimiter=';')
for row in reader:
print row
Попробуйте это.
import csv
reader = csv.reader(open("yourfile.csv", "rb"), delimiter=';', quoting=csv.QUOTE_NONE )
for row in reader:
print row
Это ^^^ если вы хотите сохранить кавычки
Редактировать: Если вы хотите ';'
удалить содержимое поля ( 'c;d'
= 'cd'
регистр) — вы можете выполнить постобработку возвращаемых строк, что-то вроде этого:
import csv
reader = csv.reader(open("yourfile.csv", "rb"), delimiter=';', quoting=csv.QUOTE_NONE )
for row in reader:
print [item.replace(';', '') for item in row]
Ответ №2:
В других контекстах может использоваться функция shlex.split()
Комментарии:
1. Как он может быть разделен по разделителю, отличному от пробельного?