如何用pyscopg2.copy_to或copy_expert写入压缩文件?
How to write out to compressed file with pyscopg2.copy_to or copy_expert?
我见过的所有示例都将 psql
与 COPY COMMAND | gzip > 'filename'
之类的东西一起使用。如果可能的话,我更愿意使用带有 psycopg2
的解决方案,并且我认为将它写出到处理数据然后写出压缩的 [=15= 的字符串缓冲区类型对象可能会很好] 文件。
我该怎么做?
psycopg 的文档说 copy_to
accepts any file-like object. Thus you could simply use the gzip.open
打开一个可写的类似 gzip 文件的对象:
import gzip
with gzip.open('table-data.gz', 'wb') as gzip_file:
cursor.copy_to(gzip_file, 'my_table')
或者,如果您喜欢以特定编码编写文本,并且在 Python 3.3+ 上,您可以使用模式 'wt'
并添加 encoding='UTF-8'
或类似于 gzip.open
.
我见过的所有示例都将 psql
与 COPY COMMAND | gzip > 'filename'
之类的东西一起使用。如果可能的话,我更愿意使用带有 psycopg2
的解决方案,并且我认为将它写出到处理数据然后写出压缩的 [=15= 的字符串缓冲区类型对象可能会很好] 文件。
我该怎么做?
psycopg 的文档说 copy_to
accepts any file-like object. Thus you could simply use the gzip.open
打开一个可写的类似 gzip 文件的对象:
import gzip
with gzip.open('table-data.gz', 'wb') as gzip_file:
cursor.copy_to(gzip_file, 'my_table')
或者,如果您喜欢以特定编码编写文本,并且在 Python 3.3+ 上,您可以使用模式 'wt'
并添加 encoding='UTF-8'
或类似于 gzip.open
.