.py files contain the source code of a program. Whereas,
.pyc file contains the bytecode of your program. We get bytecode after compilation of
.py file (source code).
.pyc files are not created for all the files that you run. It is only created for the files that you import.
* Before executing a python program python interpreter checks for the compiled files. If the file is present, the virtual machine executes it. If not found, it checks for
.py file. If found, compiles it to
.pyc file and then python virtual machine executes it.
.pyc file saves you the compilation time.