我有一个脚本,从电子邮件中获取信息,下载图像和必要的文本,然后创建一个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()
发布于 2013-05-07 20:25:00
Python代码是按顺序运行的,因此您的zip函数应该仅在生成所有HTML文件之后才能运行。您遇到的问题可能是在for file in allFiles:
中--查找文件列表并将其放入allFiles
变量的代码在哪里?如果代码是在HTML生成之前运行,那么在创建压缩文件时,allFiles
将拥有您想要捕获的所有文件的过期索引。
https://stackoverflow.com/questions/16427871
复制