我有一个脚本,它从电子邮件中获取信息,下载图像和必要的文本,然后使用所述信息创建一个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()
答案 0 :(得分:3)
Python代码按顺序运行,因此只有在生成所有HTML文件后,您的zip函数才能运行。您遇到的问题可能在for file in allFiles:
- 在哪里找到文件列表并将其放入allFiles
变量的代码?如果该代码在HTML生成之前运行,那么在创建zip文件时,allFiles
将包含您要捕获的所有文件的过时索引。