В чем разница между файлами .py и .pyc?

Я заметил, что .pyc файлы создаются при создании некоторого .py файла с тем же именем. В чем разница между .py и .pyc файлами?

Кроме того, я обнаружил, что файлы .pyc лежат вокруг помех. Нужно ли удалять файлы .pyc? Или есть преимущество и/или необходимость иметь их вокруг?

ОБНОВЛЕНИЕ: вот 2 ответных вопроса, которые связаны с моим вопросом.

Если Python интерпретируется, что такое .pyc файлы?

Почему основные исполняемые скрипты Python не скомпилированы в файлы pyc, такие как модули?

Этот вопрос не является дубликатом

Причина 1: Потому что я спрашиваю, в чем разница между этими двумя файлами. Вопрос S.Lott нашел имя "Если интерпретируется Python, что такое .pyc файлы?" не спрашивает, какая разница между файлами .py и .pyc. Он задает вопрос о файлах .pyc.

Причина 2: Потому что мои второстепенные вопросы "Следует удалить файлы .pyc? Или есть польза и/или необходимость иметь их вокруг? предоставить еще больше информации о файлах .pyc и о том, как их следует обрабатывать.

Причина 3: Потому что, когда начинающий программист на Python, как и я, хочет узнать В чем разница между .py и .pyc файлами?, у них не будет проблем с поиском ответа, поскольку они будут руководствоваться непосредственно на мой вопрос. Это помогает сократить время поиска, так как вопрос правильный.

Ответ 1

.pyc содержат скомпилированный байт-код исходных файлов Python. Интерпретатор Python загружает файлы .pyc до .py файлов, поэтому, если они присутствуют, это может сэкономить некоторое время, не перекомпилируя исходный код Python. Вы можете избавиться от них, если хотите, но они не создают проблем, они невелики, и они могут сэкономить некоторое время при запуске программ.

Ответ 2

Python компилирует .py и сохраняет файлы как .pyc, чтобы ссылаться на них в последующих вызовах.

Нет вреда при их удалении, но они сохраняют время компиляции, если вы выполняете большую обработку.

Ответ 3

"Программа не запускается быстрее, когда она считывается из файла".pyc "или".pyo ", чем когда она считывается из файла".py ", и только быстрее, чем".pyc "или".pyo "- это скорость, с которой они загружаются."

http://docs.python.org/release/1.5.1p1/tut/node43.html