0

ファイルの並べ替えを行い、statfiles = [filename1、filename2、felename3 ......] のようなタプルを生成するスクリプトがあります。次に、それらのファイルに対応する PDF を取得し、そのファイルから 1 ページを抽出して、すべての PDF が処理された zip ファイルを作成する必要があります。今のところ、抽出したページを別の (plots_ext) 一時フォルダーに保存し、そのフォルダーからファイルを取得してアーカイブに入れる場合にのみ、それを達成できました。実際に一時フォルダーに保存しなくても実行できると確信しています。しかし、私は Python の経験があまりないので、そのタスクを達成する方法がまだわかりません。

抽出/圧縮タスクを実行するコードの一部を次に示します。

pdfs = zipfile.ZipFile("hi_eff.zip","w")

for item in statfiles:

     output = pyPdf.PdfFileWriter()
     input1 = pyPdf.PdfFileReader(open('plots/'+item+".pdf", "rb"))
     output.addPage(input1.getPage(0))
     outputStream = open('plots_ext/'+item+".pdf", "wb")
     output.write(outputStream)
     outputStream.close()    

try:
    pdfs.write('plots_ext/'+item+".pdf")
except:
    print ('No PDF file for ', filename)

pdfs.close()
4

1 に答える 1

0

outputStream を StringIO オブジェクトに置き換え、 ZipFile.writestr(StringIO.getvalue()) を使用して書き出すことができるはずです。

于 2013-08-08T19:52:04.250 に答える