загрузка текстового файла в базу данных с использованием Python

1

Я пытаюсь загрузить текстовый файл в базу данных. Мой текстовый файл составляет около 1,6 ГБ. Мне нужно написать скрипт python для загрузки текстового файла со всеми заголовками в базу данных

Какие-нибудь рекомендации относительно того, как я это делаю?

благодаря

  • 1
    вам нужно предоставить больше информации; Конечно, Python может сделать это! Опишите структуру текстового файла и формат, в котором БД ожидает данные.
  • 2
    нам нужно больше информации. Как какой текстовый файл у вас есть? CSV? Что за база данных? MySQL? ...
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

Использование python, безусловно, возможно. Если вы читаете в mysql, вы можете проверить mysql-python. Читая текстовый файл, вы можете использовать file = open ('filename', 'r') и file.readline(), чтобы получить каждую строку и проанализировать ее.

Однако... есть дополнительные накладные расходы на использование python. Если текстовый файл упорядочен (т.е. Один бит в строке, каждая строка имеет одинаковое количество столбцов с постоянным разделителем, например запятая, табуляция, точка с запятой и т.д.), То наиболее эффективным способом является загрузка непосредственно. В mysql вы сделали бы что-то вроде:

LOAD DATA INFILE '/folder/input.dat' INTO TABLE destination_table
FIELDS TERMINATED BY ',' (id,field_1,field_2,field_3);

Если вам нужны некоторые незначительные изменения в файле, такие как изменение запятых или вещей в начале или конце строки, вы можете использовать командную строку sed (если вы на * nix или osx... вам нужно будет установить если вы на окнах).

Обновить

LOAD DATA INFILE будет быстрее: http://dev.mysql.com/doc/refman/5.5/en/load-data.html

Когда вы говорите "начало статьи 1. какой-то текст 2. какой-то текст 3. какой-то текст MAINO", это 1., 2., 3. и MAINO DEFFERENT FIELDS? Если у вас есть 2 поля, такие как заголовок и статья, вы можете отформатировать текстовый документ, чтобы выглядеть примерно так:

This is my header of the article.;;And here is my article, it a nice
story about programming.
My article goes on for many lines.
And many more.
<==============================================================================>
This is my second article header.;;And here is article 2. It is.
And is.
Etc.
<==============================================================================>

Затем вы можете использовать LOAD DATA INFILE, например:

LOAD DATA INFILE '/folder/filename.txt' INTO TABLE destination_table
LINES TERMINATED BY '<==============================================================================>'
FIELDS TERMINATED BY ';;' (header,article);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню