Pythonに比較的慣れていないので、次のコードを使用して、PostgreSQLのbyteaフィールドに含まれているテキストファイルをzipアーカイブから正常に取得しました。
myzip = ZipFile(StringIO(rv[0]["archivefield"]), 'a')
data = myzip.read("content.txt",'a')
# *** WORK ON content.txt HAPPENS HERE ***
次に、そのテキストファイルで必要な作業を行いました...これまでのところ、とても良いです!
ただし、content.txtをアーカイブ内の正しい場所に圧縮して戻し、「archivefield」に書き戻すための構文が少し混乱しています。
ここにいる専門家の誰かが、私が必要とする構文を少し提案できますか?もうすぐです!
さて、ここで受け取った助けのおかげで-私たちは今確かに「archivefield」に書き戻しています-これは素晴らしいです!
現在の問題は次のとおりです。
1)元のフィールドのサイズを2倍にしているようです。これは「追加」モードの機能ですか?'ゼロに巻き戻してフィールドを書き換える方法は?-および/または-
2)書き戻しているデータは、元のデータが-PostgreSQLのv9の標準であるように見えたため、hex(?)モードにエンコードされません。- また -
データが再度圧縮されていないため、サイズが大きいという問題はありますか?