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 ?

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 correct

Well, 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 по дате отправления:

Предыдущее
От: "Shulgin, Oleksandr"
Дата:
Сообщение: Re: psycopg2 open file for reading
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: psycopg2 open file for reading