【问题标题】:What is the difference between .py and .pyc files? [duplicate].py 和 .pyc 文件有什么区别? [复制]
【发布时间】:2011-04-24 12:55:22
【问题描述】:

我注意到当一些同名的.py 文件运行时会自发生成.pyc 文件。 .py.pyc 文件有什么区别?

此外,我发现将.pyc 文件放在周围会使空间变得混乱。应该删除.pyc 文件吗?还是让他们在身边有好处和/或必要性?

更新:这里有 2 个与我的问题相关的已回答问题

If Python is interpreted, what are .pyc files?

Why are main runnable Python scripts not compiled to pyc files like modules?

这个问题不是重复的

原因 1:因为我在问这两个文件有什么区别。 S.Lott 发现的问题名为“如果 Python 被解释,什么是 .pyc 文件?”不是问 .py 和 .pyc 文件有什么区别。它在询问 .pyc 文件是什么。

原因 2:因为我的次要问题'应该删除 .pyc 文件吗?还是让他们在身边有好处和/或必要性?提供更多关于 .pyc 文件以及如何处理它们的信息。

原因 3:因为当像我这样的 Python 初学者想要了解 .py 和 .pyc 文件有什么区别? 时,他们会毫无问题地找到答案因为他们将直接被引导到我的问题。这有助于减少搜索时间,因为问题是正确的。

【问题讨论】:

标签: python file


【解决方案1】:

.pyc 包含 Python 源文件的编译字节码。 Python 解释器在 .py 文件之前加载 .pyc 文件,因此如果它们存在,它可以通过不必重新编译 Python 源代码来节省一些时间。如果你愿意,你可以去掉它们,但它们不会引起问题,它们也不大,而且它们在运行程序时可能会节省一些时间。

【讨论】:

  • "它们在运行程序时可能会节省一些时间。"你错了,检查文档(docs.python.org/tutorial/modules.html):“从 .pyc 或 .pyo 文件读取程序时,它的运行速度不会比从 .py 文件读取时快;唯一的事情是.pyc 或 .pyo 文件的加载速度更快。”
  • @tzzzzz:是的,但加载时间会影响总执行速度,尤其是对于花费更多时间加载/编译源代码的较小程序。
  • 另外,pyc 独立于 py 工作,一旦编译成对 py 源代码的字节码就不需要了
【解决方案2】:

Python 编译 .py 并将文件保存为 .pyc,以便在后续调用中引用它们。

删除它们没有坏处,但如果您进行大量处理,它们将节省编译时间。

【讨论】:

  • 如果对 .py 文件进行了更改,Python 如何知道读取 .pyc 文件而不是 .py 文件?只是日期修改检查?还是更高级?
  • @MichaelButler 直接时间戳检查。
【解决方案3】:

“从“.pyc”或“.pyo”文件中读取程序的运行速度并不比从“.py”文件中读取时快;唯一比“.pyc”更快的地方" 或 ".pyo" 文件是加载它们的速度。"

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

【讨论】:

    猜你喜欢
    • 2013-09-14
    • 2013-07-02
    • 2015-09-28
    • 1970-01-01
    • 2011-07-17
    • 2011-08-28
    • 2019-01-09
    • 1970-01-01
    • 2015-11-23
    相关资源
    最近更新 更多