Найти - Пользователи
Полная версия: Как изменить последовательность записи из csv в sqlite?
Начало » Python для новичков » Как изменить последовательность записи из csv в sqlite?
1
Andru111
Доброго времени суток. Появилась такая задача, необходимо перевести файл из csv в sqlite, вроде задача не сложная, но нужно изменить последовательность записи, то есть чтобы записывало, например, данные из 2 столбца в 4 и т.п.
Сейчас есть такой код, но это просто запись один к одному:
 import sqlite3
   import csv
   con = sqlite3.connect('out_data')
   con.text_factory = str
   cur = con.cursor()
   cur.execute("CREATE TABLE IF NOT EXISTS out_data (chair, day, name, class_index, shift_index, camp)") 
   f = csv.reader(open('/home/andrei/IntelSS/data/csv/out.csv', 'rb'))
   for item in f:
       cur.execute("INSERT OR IGNORE INTO out_data VALUES (?, ?, ?, ?, ?, ?)", item)
   con.commit()
   con.close()
Может кто сталкивался с подобным или просто знает как можно решить?
py.user.next
Andru111
чтобы записывало, например, данные из 2 столбца в 4
  
for item in f:
    newitem = item[:]
    newitem[3] = newitem[1]
    cur.execute("INSERT OR IGNORE INTO out_data VALUES (?, ?, ?, ?, ?, ?)", newitem)
Andru111
Спасибо огромное, все получилось!
И еще такой вопрос, как можно сохранить имя csv файла в переменную?
Rodegast
> нужно изменить последовательность записи, то есть чтобы записывало, например, данные из 2 столбца в 4 и т.п.

А зачем? С точки зрения БД это вещь бессмысленная.
Andru111
Rodegast
А зачем? С точки зрения БД это вещь бессмысленная.
Необходимо было отсортировать по другому, но с этим уже помогли, теперь есть другой вопрос:
Andru111
И еще такой вопрос, как можно сохранить имя csv файла в переменную?
Andru111
вроде разобрался, но мне кажется, что это костыль, так оно или нет?
 f = open('/home/andrei/IntSS/data/csv/out.csv', 'rb')
a = f.name.split('/')
name = a[len(a)-1]
r = csv.reader(f)
py.user.next
Andru111
вроде разобрался, но мне кажется, что это костыль, так оно или нет?
  
import os
 
idir = '/home/andrei/IntSS/data/csv'
ifname = 'out.csv'
ipath = os.path.join(idir, ifname)
 
with open(ipath, 'rb') as fin:
    print(fin.readline())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB