为什么命名 python 文件“.py”没有突出显示

why does naming a python file ".py" have no highlighting

所以我制作了一个名为“.py”的 python 测试文件,并尝试输入一些代码。然后,没有语法突出显示。为什么会这样?此外,当我将名称更改为“test.py”时,会突出显示。我在 windows 10 上使用空闲,我也在我爸爸的电脑上试过,命名文件“.py”没有任何突出显示。

所有Python文件内部都是Pythonmodulesmodules的名字是前面的字符串.py。例如,文件 test.py 是一个名为 test.

的模块

如果您正在创建一个仅命名为 .py 的文件,那么模块名称基本上什么都没有,这是无效的。

有关命名 Python 模块或包的更多信息,请阅读:PEP8 -- Style Guide for Python Code.


此外,对于 UNIX-like 操作系统和现代 Windows,以 . 开头的文件通常表示包含配置信息的 隐藏文件 .例如,bash 有一个名为 .bashrc 的配置文件,它会在每次 shell 启动时运行。

命名以句点开头的文件会做一些奇怪的事情。在 linux 中它是一个隐藏文件 而在 在 windows 10 中它是一个配置文件 所以它很可能不是recommended.try 不要命名以文字“.”开头的文件.它进行了一些奇怪的系统调用。所以你的文件没有被语法高亮

这是 idlelib.editor.EditorWindow 判断正在编辑的文件是否为 python 代码的方法。

def ispythonsource(self, filename):
    if not filename or os.path.isdir(filename):
        return True
    base, ext = os.path.splitext(os.path.basename(filename))
    if os.path.normcase(ext) in (".py", ".pyw"):
        return True
    line = self.text.get('1.0', '1.0 lineend')
    return line.startswith('#!') and 'python' in line

没有名称(因为新)、.py(w) 扩展名或魔术注释(在 unix-like 操作系统上)的文件被假定为 python。 (忽略目录部分。)这里是 os.path.splitext 的行为,至少在 Windows.

>>> os.path.splitext('a.py')
('a', '.py')
>>> os.path.splitext('.py')
('.py', '')

.py 被视为没有扩展名,并且没有魔术注释,不被视为 python 代码。想了想,我不打算加特例代码来识别,因为这样的名字按照别人的解释是个坏主意。第一次看到这个问题