0

電子メールから情報を取得し、画像と必要なテキストをダウンロードして、その情報を含む HTML ファイルを作成するスクリプトがあります。また、配布を簡単にするためにファイルを圧縮する機能も実装したいと考えています。私が直面している問題は、すべての html ファイルが生成される前に zip 関数が実行され、アーカイブから除外されることです。zip アーカイブを作成する前に、すべての HTML ファイルが作成されていることを確認する最善の方法について、誰か提案はありますか? ありがとうございました!

サンプルコード:

for csvFile in csvFiles:
    for file in os.listdir('.'):
        #do stuff
    csv_file = csv.DictReader(open(csvFile))
    for line in csv_file:
        htmlFile = csvFile[:-4]+'-'+line['sequence']+'.html'
        htmlCode = '<html goes here>'
        htmlData = open(os.path.join('C:/foo/bar', htmlFile), 'w+')
        htmlData.write(htmlCode)
        print htmlFile+' Complete'
        htmlData.close()
for file in allFiles:
    archive = zipfile.ZipFile(csvFile[:-4]+'.zip', mode='a')
    archive.write(file)
    archive.close()
4

1 に答える 1

3

Python コードは順次実行されるため、すべての HTML ファイルが生成された後にのみ zip 関数を実行する必要があります。あなたが経験している問題はおそらく- ファイルのリストを見つけて変数for file in allFiles:に入れるコードはどこにありますか? allFilesそのコードが HTML 生成の前に実行されている場合、zip ファイルを作成するときに、allFilesキャプチャするすべてのファイルの古いインデックスが作成されます。

于 2013-05-07T20:24:59.800 に答える