Указание объекта потока на другой поток - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть объект файлового потока во внешнем расположении, и я хочу передать этот поток как объект типа файла в pygresql. Это работает, однако я хочу внести некоторые изменения в поток с заменой.

import gzip
import pgdb

stream = gzip.open(external_location, 'r')
myConnection = pgdb.connect( host='x.x.x.X', user='test', password='test', database='test' )
cursor = myConnection.cursor()
cursor.copy_from(stream, 'test_table')

Я не хочу сохранять временную копию файла локально. Я хочу направить поток непосредственно на PostgreSQL, но вносить некоторые изменения для каждой итерации на ходу.

stream = gzip.open(external_location, 'r')
manipulated_stream = (line.replace('a', 'b') for line in stream.readlines())
cursor.copy_from(manipulated_stream, 'test_table')

Но затем в виде файлового объекта, который я могу передать команде copy_from.

...