How to zip a folder and file in python?

You can use shutil

import shutil

shutil.make_archive("simonsZip", "zip", "files")

The zipfile module in python has no support for adding a directory with file so you need to add the files one by one.

This is an (untested) example of how that can be achieved by modifying your code example:

import os

zfName = 'simonsZip.kmz'
foo = zipfile.ZipFile(zfName, 'w')
foo.write("temp.kml")
# Adding files from directory 'files'
for root, dirs, files in os.walk('files'):
    for f in files:
        foo.write(os.path.join(root, f))
foo.close()
os.remove("temp.kml")