Re: psycopg2 open file for reading
От | Dan Sawyer |
---|---|
Тема | Re: psycopg2 open file for reading |
Дата | |
Msg-id | 5630E8D2.5080200@earthlink.net обсуждение исходный текст |
Ответ на | Re: psycopg2 open file for reading ("Shulgin, Oleksandr" <oleksandr.shulgin@zalando.de>) |
Ответы |
Re: psycopg2 open file for reading
|
Список | psycopg |
Yes. That is what is producing the errors. The pertinent lines are:
conn = psycopg2.connect(conn_string)
cursoro = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
... processing python code
... creates test.txt
... closes test.txt
f = open("/tmp/test.txt","r")
copy_string = 'copy temp_tbl from '/tmp/test.txt' csv delimiter '|';'
cursoro.copy_expert(copy_string, file)
Is a cursor the wrong way to reference copy_expert ?
conn = psycopg2.connect(conn_string)
cursoro = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
... processing python code
... creates test.txt
... closes test.txt
f = open("/tmp/test.txt","r")
copy_string = 'copy temp_tbl from '/tmp/test.txt' csv delimiter '|';'
cursoro.copy_expert(copy_string, file)
On 10/28/2015 08:06 AM, Shulgin, Oleksandr wrote:
On Wed, Oct 28, 2015 at 4:04 PM, Dan Sawyer <dansawyer@earthlink.net> wrote:The file open command is:
f = open("/tmp/test.txt","r")
Is this correct? Is the read method syntax correctWell, it looks correct. Do you get any errors with that?On 10/28/2015 07:42 AM, Shulgin, Oleksandr wrote:On Wed, Oct 28, 2015 at 3:35 PM, Adrian Klaver <adrian.klaver@aklaver.com> wrote:
The cheat is to read the on disk file and write it into an in memory file and then use that with STDIN. Something like:
sql_copy = "COPY " + self.pg_tbl_name
sql_copy += " FROM STDIN WITH CSV DELIMITER '\t'"
cur_copy.copy_expert(sql_copy, mem_file)And you don't actually need a "memory file", any object implementing "read" method, such as a normal fie object should just work:file=open('1.txt', 'r')cur_copy.copy_expert(sql_copy, file)--Alex
В списке psycopg по дате отправления: