Pythonコードを実行している私のAzure関数からストレージblobにファイルを出力しようとしています。できるだけ早く私は圧縮のいずれかの形式を使用して起動し、ファイルを結合出力にこれを読み戻すよう、しかしAzure関数+ Python - 出力圧縮zipファイル
with zipfile.ZipFile('Data_out.zip', 'w') as myzip:
myzip.write('somefile.js')
print 'adding somefile.js'
と
RFile = open('Data_out.zip', 'r').read()
output = open(os.environ['returnfile'], 'w')
output.write(RFile)
:私は、次のコードを使用して、任意の圧縮せずにファイルを返す達成しました私のストレージBLOBにコピーされると、破損して判読できなくなります。
import zipfile
try:
import zlib
compression = zipfile.ZIP_DEFLATED
except:
compression = zipfile.ZIP_STORED
modes = {zipfile.ZIP_DEFLATED: 'deflated',
zipfile.ZIP_STORED: 'stored',
}
print 'creating archive'
zf = zipfile.ZipFile('Data_out.zip', mode='w')
try:
print 'adding log.txt and outputfile with compression mode', modes[compression]
zf.write('log.txt', compress_type=compression)
zf.write('somefile.js', compress_type=compression)
finally:
print 'closing'
zf.close()
と
RFile = open('Data_out.zip', 'r').read()
output = open(os.environ['returnfile'], 'w')
output.write(RFile)
さて、これは私のwebjobsフォルダの完全に機能するのzipファイルを生成します。しかし、私はこれを私のストレージBLOBに正しくコピーすることができません。私の推測では、.read()と.write()を併用すると、圧縮ファイルを扱う際にはあまり意味がありません。しかし、現時点では、私は次に何をすべきか分からずに立ち往生しています。
私はPython 2.7を使用しています。
何か提案がありますか?
EDIT
正確なエラーの更なる明確化私が経験しています:
RFile = open('Data_out.zip', 'r').read()
output = open(os.environ['returnfile'], 'w')
output.write(RFile)
を使用している場合、私は機能スクリプトを終えることができていますが、私の中に表示されたzipファイルをAzureストレージBLOBはサイズがわずか数バイトで、破損しています。私のwebjobsストレージに残っているzipファイルは実際約250kbで、ファイルをWebstorageから元に戻すことができます。
だから私のエラーの原因は、私の出力コードで最も可能性が高いです。
RFile = open('Data_out.zip', 'r').read()
output = open(os.environ['returnfile'], 'w')
output.write(RFile)
表示されているエラーを共有できますか? –
私は、本文中で私が経験しているエラーのより詳細な説明を含んでいます。あなたがより多くの情報を必要とするかどうかを教えてください。 – Krande