Форум сайта python.su
0
Имеется один файл формате csv, в нем находиться несколько разных таблиц, необходимо импортировать эти данные в sql по разным БД. Сам процесс импортирования не является трудным, однако не могу найти решения разделения чтения данных. Решение вижу в предварительном “разделение” файла, однако может сообщество подскажет что то другое?
В одном месте подсказали использовать f.read().split(''): для разделения, однако результата этого не дало.
Bfile = "export.csv" with open ( Bfile, 'r' ) as fin: for t in fin.read ().split ( ';;;;;' ): dr = csv.DictReader (t, delimiter =';') for i in dr: to_db = [(i['п»ї_CATEGORY_'], i['_ID_']) for i in dr]
Отредактировано gogogogo (Апрель 18, 2018 05:00:23)
Офлайн
1
Насчет этой строки:
for t in fin.read ().split ( ';;;;;' ):
split(';')
Офлайн
0
drivemanВ моей примере используется именно split ( ‘;;;;;’ ), хотя это не так важно.
То есть, если хотелось пройтись по значениям, разделенным символом “;”
Прикреплённый файлы:
export.csv (578 байт)
Офлайн
1
gogogogoПосмотерв export.csv понял, почему было split ( ‘;;;;;’ ). На первый взгляд, ваш код должен работать. Сейчас просто нет времени его потестировать.
Может есть какие то альтернативные идеи?
Офлайн
gogogogo
csv - компактное отображение таблицы. первая строка - заголовки столбцов, дальше - столбцы значений.
у вас в одном файле две таблицы с разной структурой, без костылей не сделаешь. делите на 2 файла лучше.
и записан с ошибкой - перед _CATEGORY_ 3 нечитаемых байта
Офлайн
857
gogogogoЧто-то не то у тебя с исходными данными. В одном CSV-файле находится одна таблица, это формат такой. Никакие .split()'ы при работе с CSV не нужны, есть специальный модуль для этого, который всё выполняет сам.
Имеется один файл формате csv, в нем находиться несколько разных таблиц
Офлайн
0
py.user.nextДа, с одной таблицей он справляется отлично, но у меня две таблицы… и я не знаю как их разделить..
есть специальный модуль для этого, который всё выполняет сам.
vic57я не совсем хорошо знаю pyton чтобы самому продумать работающий алгоритм разделения файла, а найти какой либо пример, или хотя бы описание способа как это можно сделать мне не удалось.
без костылей не сделаешь. делите на 2 файла лучше
Офлайн
857
gogogogoА как ты их получил в одном файле? Код напиши для одного файла, потом просто раздели файл на два правильных файла и по отдельности запускай код для них.
но у меня две таблицы… и я не знаю как их разделить..
Офлайн
gogogogoдля твоего файла так
но у меня две таблицы… и я не знаю как их разделить..
with open('export.csv') as f: data = f.read().split(';;;;;\n') with open('1.csv','w') as f1,open('2.csv','w') as f2: f1.write(data[0][1:]) f2.write(data[1])
Офлайн