Det accepterede svar er korrekt, men hvis du vil have mere end blot EoghanM's kommentar til at gå på, virkede følgende for mig ved at KOPIERE en tabel ud til CSV...
from sqlalchemy import sessionmaker, create_engine
eng = create_engine("postgresql://user:example@sqldat.com:5432/db")
ses = sessionmaker(bind=engine)
dbcopy_f = open('/tmp/some_table_copy.csv','wb')
copy_sql = 'COPY some_table TO STDOUT WITH CSV HEADER'
fake_conn = eng.raw_connection()
fake_cur = fake_conn.cursor()
fake_cur.copy_expert(copy_sql, dbcopy_f)
sessionmaker er ikke nødvendigt, men hvis du har for vane at oprette motoren og sessionen på samme tid, skal du bruge raw_connection du skal adskille dem (medmindre der er en måde at få adgang til motoren gennem sessionsobjektet, som jeg ikke kender). SQL-strengen leveret til copy_expert er heller ikke den eneste vej til det, der er en grundlæggende copy_to funktion, som du kan bruge med undersæt af parametrene, som du kunne overføre til en normal COPY TIL forespørgsel. Den overordnede ydelse af kommandoen virker hurtig for mig, idet jeg kopierer en tabel med ~20.000 rækker ud.
https://initd.org/psycopg/docs/cursor.html#cursor.copy_tohttps://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.Engine.raw_connection