Ответ 1
Если вы используете драйвер psycopg2, курсоры предоставляют функцию copy_to
и copy_from
, которая может считываться из любого файлового объекта (включая буфер StringIO
).
В файлах есть примеры examples/copy_from.py и examples/copy_to.py, которые поставляются с дистрибутив psycopg2.
Этот отрывок из примера copy_from.py
:
conn = psycopg2.connect(DSN)
curs = conn.cursor()
curs.execute("CREATE TABLE test_copy (fld1 text, fld2 text, fld3 int4)")
# anything can be used as a file if it has .read() and .readline() methods
data = StringIO.StringIO()
data.write('\n'.join(['Tom\tJenkins\t37',
'Madonna\t\N\t45',
'Federico\tDi Gregorio\t\N']))
data.seek(0)
curs.copy_from(data, 'test_copy')