如何在没有.py扩展名的情况下执行文件?

时间:2015-08-10 18:04:13

标签: python file-extension

Python如何在没有.py扩展名的情况下执行文件?以下两个文件都有效。 Python如何知道hello.txt是一个Python文件?

hello.py

print "hello world"

hello.txt

print "hello world"
$ python hello.txt
hello world

$ python hello.py
hello world

4 个答案:

答案 0 :(得分:4)

Python知道它是一个Python文件,因为你运行了python <name of file>。文件扩展名对计算机来说实际上并不重要。文件扩展名可以帮助您,人类,记住什么样的文件。它们还使计算机更容易自动确定用于特定文件的程序。

但实际上,如果你想忽略它们,文件扩展名无关紧要。如果你告诉Python打开一个文件,它会尝试打开该文件。它不关心文件名是什么;重要的是文件是否包含有效的Python代码。

答案 1 :(得分:1)

如果您在Windows上并询问实际的Python可执行文件,那么您可以指定哪个可执行Python将与.py扩展名一起使用。

例如,从文档here,您可以从命令提示符运行关联Python脚本:

assoc .py=Python.File

然后,如果您想使用pythonw.exe而不是python.exe来执行Python脚本,可以使用以下命令更改可执行文件:

ftype Python.File=C:\Path\to\pythonw.exe "%1" %*

答案 2 :(得分:1)

python解释器,以及其他程序/解释器/等(即ruby,bash等),并不真正关心文件扩展名,他们只是尝试执行文件内容并期望它符合这种程序使用的语言的语法,否则会抛出适当的错误。

使用ruby的示例,请考虑下一个文件hello.hello

puts 'Hello in ruby'

您可以将其运行为:

$ ruby hello.hello
Hello in ruby

除了您的示例之外,请注意您也可以运行完全没有扩展名的同一文件,而无需在命令行中指定运行文件的程序;但是在这种情况下,您需要在文件本身中指定,如下所示:

#!/usr/bin/env python
print 'Hello world!'

并运行它

$ ./hello
Hello world!

答案 3 :(得分:1)

pytxt和许多其他文件都是技术上的&#34;文字&#34;文件。但是,扩展用作用户和操作系统区分哪个文件用于哪些程序的方式。如果您使用的是Mac或Windows,有时可能会出现一个屏幕open with,您可以在其中选择默认程序来打开文件。为了知道在哪个文件上使用什么程序,操作系统使用文件扩展名。

您可以使用文件扩展名来了解哪些文件可以执行哪些操作。已知py文件以Python身份运行,您将.docx作为Microsoft Word启动。但是,如果这两个都是文本文件呢?如果在Python中打开Microsoft Word文件,您可能会遇到严重的编码错误:P