If you're on Linux (or any other form of Unix, such as MacOSX), a simple way to reduce a process's priority -- and therefore, indirectly, its consumption of CPU if other processes want some -- is the nice command. In Python (same OSs), os.nice lets your program "make itself nicer" (reduce priority &c).
For backing up a PostgreSQL DB, I recommend PostgreSQL's own tools; for zipping up a folder except the pyc files (and temporary files -- however it is you identify those), Python is quite suitable. For example:
>>> os.chdir('/tmp/az')
>>> f = open('/tmp/a.zip', 'wb')
>>> z = zipfile.ZipFile(f, 'w')
>>> for root, dirs, files in os.walk('.'):
... for fn in files:
... if fn.endswith('.pyc'): continue
... fp = os.path.join(root, fn)
... z.write(fp)
...
>>> z.close()
>>> f.close()
>>>
this zips all files in said subtree except those ending in .pyc
(without compression -- if you want compression, add a third argument zipfile.ZIP_DEFLATED
to the zipfile.ZipFile
call). Could hardly be easier.