您好我注意到,无论何时从命令行(使用Windows 8.1),我都会输入
python file.py
它自动知道我打算编写python.exe file.py
它是如何做到的?
我安装了Anaconda,我知道我有一个指向python.exe的环境变量。但这并不能解释为什么我不需要每次都输入python.exe。
答案 0 :(得分:1)
使用路径搜索Python。在环境变量列表中找到PATH。
如果您不编写python并只是双击该文件,则会搜索注册表。
您可以使用命令行中的ftype和assoc查看文件和文件与程序的关联。参见例如http://www.fileformat.info/tip/microsoft/assocftype.htm
如果省略扩展名,则还会搜索注册表。此cmd shell搜索环境变量PATHEXT和注册表以查找python.exe。在此之后,它正在使用注册表来查找位置。
当您在Spyder中注册python发行版时,会进行这些更改。
你可以像我在开头写的一样使用ftype和assoc来揭示这些信息。
答案 1 :(得分:1)
这不是python功能。调用可执行文件而没有文件扩展名的行为由操作系统和PATH变量定义。维基百科对你的问题有一个很好的答案
PATH (variable)
...
当在命令shell中输入命令或由程序执行系统调用以执行程序时,系统首先搜索当前工作目录,然后搜索路径,从左到右检查每个目录,查找可执行文件名与给定的命令名称匹配。
......
可执行文件后面的文件名可以是一切。因此,如果您愿意,可以致电python demo.txt
。如果文件内容对于python是可读的,那么它也将被执行。