Skip to main content
 首页 » 编程设计

python之python 解释器的 .py 和 .txt 有什么区别

2025年05月04日10lexus

我发现这个事实很有趣,解释器似乎可以与 python ex1.txt 一起正常工作,尽管它应该是 ex1.py 。这可能是什么原因?是否有任何关于此类行为的文档。 ex1.py 或 ex1.txt 具有相同的 print "hello",如果我有任何代码更改,这会改变吗?在某些情况下 python ex1.txt 可能无法正常工作。我用 google 搜索了一下,没有找到任何好的结果。

请您参考如下方法:

启动 Python 后应该没有区别;也就是说,解释器本身不会根据源文件的扩展名以不同方式处理 Python 源代码。

然而,.py扩展名对 import 有特殊意义声明,它寻找模块。模块(通常)是带有 .py 的文本文件。扩展名(虽然它可能被预编译为 .pyc )或包含名为 __init__.py 的文件的目录. (imp 模块提供了一种解决方法,用于导入不带 .py 扩展名的文件。此外,在 Python 3 中,技术上不需要 __init__.py 文件。)

此外,在 Windows 中(尽管 在 Linux 中不是!)文件的扩展名决定了用于启动文件的程序;首次安装 Python 时,系统会提示您(对于大多数版本的 Python 安装程序)选择是否关联 .py带有 Python 文件的扩展名。这意味着当您双击 .py文件,它将使用 Python 启动(相当于命令行中的 Python <filename>.py)。

在 Linux 中(实际上在任何 *NIX 风格的环境中,甚至在 Windows 上的 Cygwin 中),文件扩展名没有这种特殊的含义,操作系统本身将特定的操作与特定的扩展名相关联;因此,在 Linux 上看到用 Python(或其他脚本语言)编写的没有文件扩展名的脚本并不少见,从而使外观(和行为)更像一个简单的命令。这个习惯用法在文件的开头使用“shebang”符号(#!/usr/bin/python 或类似的)来指示应该调用 Python 来解释文件。因此,在 *NIX 风格的 shell 中,创建一个名为 foo 的新命令用Python编写,只需执行文件foo中的命令即可, 把 #!/usr/bin/python在文件的开头,并将文件放在你的 $PATH 上的某处(例如在 ~/bin 中)。