Dodaj do ulubionych

Import danych txt do bazy OS

28.02.05, 09:05
Witam
Poszukuję darmowej bazy danych, która miałaby dostępną funkcję imporu plików
txt do tabel, tak jak TransportTextu w MS Access.
Ewentualnie poszukuję nazwy narzędzia która umożliwiłaby mi to np. do firebirda.

pozdrawiam
Piotr
Obserwuj wątek
    • user0001 Re: Import danych txt do bazy OS 28.02.05, 12:25
      Tu nie trzeba "odpowiedniej" bazy danych, tylko odpowiednie narzędzie,
      uniwersalne narzędzie jest trudne do napisania gdzyż nie istnieje standard csv,
      oto mój pomysł na szybkie załatanie dziury:

      #!/usr/bin/env python
      import csv
      import sqlite

      def create_schema(cx):
      ________cu = cx.cursor()
      ________cu.execute("""
      ________CREATE TABLE user (
      ________________uid INTEGER PRIMARY KEY,
      ________________gid INTEGER,
      ________________uname TEXT
      ________)
      ________________""")
      ________cx.commit()

      def insert(cx):
      ________f = file("/etc/passwd", "r")
      ________sniffer = csv.Sniffer()
      ________dialect = sniffer.sniff(f.read())
      ________csv.register_dialect('my_dialect', dialect)
      ________f.seek(0)

      ________rdr = csv.reader(f, 'my_dialect')

      ________cu = cx.cursor()

      ________for row in rdr:
      ________________cu.execute("""
      ________________INSERT INTO user(uid, gid, uname)
      ____________________VALUES (%s, %s, %s)
      ________________________""",
      ________________________(row[2], row[3], row[0]))
      ________cx.commit()


      if __name__ == "__main__":
      ________cx = sqlite.connect("db")
      ________create_schema(cx)
      ________insert(cx)
      ________cx.close()

      To python a serwer obcina wiodące spacje, zastąp cztery podkreślenia czterema
      spacjami. Zamiast sqlite użyj modułu pasującego do twojej bazy danych.

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka