0

我有一个脚本,它从电子邮件中获取信息,下载图像和必要的文本,然后使用所述信息创建一个 HTML 文件。我还想实现压缩文件以简化分发的功能。我遇到的问题是 zip 函数在生成所有 html 文件之前运行,因此将它们从存档中排除。是否有人对在创建 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 代码按顺序运行,因此您的 zip 函数应仅在生成所有 HTML 文件后运行。您遇到的问题可能在于for file in allFiles:- 查找文件列表并将其放入allFiles变量的代码在哪里?如果该代码在您的 HTML 生成之前运行,那么在创建 zip 文件时,allFiles将拥有您要捕获的所有文件的过期索引。

于 2013-05-07T20:24:59.800 回答