为什么命名python文件时不使用";。";没有突出显示

为什么命名python文件时不使用";。";没有突出显示,python,python-idle,Python,Python Idle,所以我制作了一个名为“.py”的python测试文件,并尝试键入一些代码。然后,没有语法突出显示。为什么会这样?另外,当我将名称更改为“test.py”时,出现了突出显示。我在windows 10上使用idle,我也在我爸爸的计算机上尝试了命名文件“.py”没有任何突出显示。所有Python文件都是内部Python模块,模块名称是.py前面的字符串。例如,文件test.py是一个名为test的模块 如果创建的文件名仅为.py,则模块名基本上为空,这是无效的 有关命名Python模块或包的更多信息

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

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

如果创建的文件名仅为
.py
,则模块名基本上为空,这是无效的

有关命名Python模块或包的更多信息,请阅读以下内容:



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

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

如果创建的文件名仅为
.py
,则模块名基本上为空,这是无效的

有关命名Python模块或包的更多信息,请阅读以下内容:



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

命名一个以句号开头的文件会产生一些奇怪的效果。在linux中,它是一个隐藏文件而在windows 10中,它是一个配置文件,因此不建议使用它。请尽量不要以文字“.”开头命名文件。它会进行一些奇怪的系统调用。因此,您的文件没有被语法突出显示

命名一个以句号开头的文件会有一些奇怪的事情。在linux中,它是一个隐藏文件而在windows 10中,它是一个配置文件,因此不建议使用它。请尽量不要以文字“.”开头命名文件。它会进行一些奇怪的系统调用。因此,您的文件没有语法高亮显示

这是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操作系统上)的文件是python。(忽略目录部分。)下面是
os.path.splitext
的行为,至少在Windows上是这样

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

.py
被视为没有扩展,没有神奇的注释,不被视为python代码。思考之后,我不倾向于添加特殊的案例代码来识别它,因为正如其他人所解释的那样,这样的名称是一个坏主意。这是我第一次看到这个问题。

这是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操作系统上)的文件是python。(忽略目录部分。)下面是
os.path.splitext
的行为,至少在Windows上是这样

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

.py
被视为没有扩展,没有神奇的注释,不被视为python代码。思考之后,我不倾向于添加特殊的案例代码来识别它,因为正如其他人所解释的那样,这样的名称是一个坏主意。这是我第一次看到这个问题。

大家好,欢迎来到StackOverFlow,它叫IDE(没有L)。您使用哪种IDE?您可以安装Atom、VS代码、Notepadd++、Pycharm(社区版是免费的)或其他IDE。它们有语法突出显示。@Saeed Idle是Python IDE,请参阅
Python dle
标记。如果
.py
是完整的文件名,则(通常)是隐藏文件的名称,而不是扩展名为空的文件名。看起来可能是编辑器中的错误。但是,没有名称的模块是不常见的。@FredZimmerman Python的IDLE是一个仅用于Python的IDE。IDLE将任何扩展名为“.py”或“.pyw”的文件视为python文件,并将所有输入Shell的代码视为python代码。您好,欢迎使用StackOverFlow,它称为IDE(不带L)。您使用哪种IDE?您可以安装Atom、VS代码、Notepadd++、Pycharm(社区版是免费的)或其他IDE。它们有语法突出显示。@Saeed Idle是Python IDE,请参阅
Python dle
标记。如果
.py
是完整的文件名,则(通常)是隐藏文件的名称,而不是扩展名为空的文件名。看起来可能是编辑器中的错误。但是,没有名称的模块是不常见的。@FredZimmerman Python的IDLE是一个仅用于Python的IDE。Delphi使用'py.p'或'py'扩展作为Python文件,将所有代码作为Python代码输入shell中。<代码>测试Fo< <代码>也不是有效的模块名称,但大多数相关程序仍应将其内容视为Python代码用于语法突出目的。但是大多数相关的程序仍然应该把它的内容当作Python代码来考虑语法高亮的目的。