Python3从以数字开头的目录导入文件

AJw*_*Jwr 5 python import python-3.x

我尝试了这个问题的答案但无济于事,所以我认为值得单独提出一个问题。目录布局如下:

aale/
     2/
       2.py
       __init__.py
     3/
       3.py
       __init__.py
     __init__.py
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些名称无法更改(这是针对硬件问题为我们提供的布局)。我正在尝试导入,23似乎不起作用。我尝试使用importlib为:

two = importlib.import_module('2.2')two = importlib.import_module('2')

这也不起作用(给出了ModuleNotFoundError: No module named '2'错误)。任何帮助/其他方法将不胜感激。我正在使用Python 3.6。

Ped*_*ito 3

您可以使用__import__,即:

two  = __import__("2.2") # or __import__("aale.2.2") 
three = __import__("3.3") # or __import__("aale.3.3")
Run Code Online (Sandbox Code Playgroud)

相当于:

import 2.2 as two  
import 3.3 as three
Run Code Online (Sandbox Code Playgroud)

这是不可能的。


笔记:

  1. 根据PEP 8 styling guide

    模块名称应该是短的、全小写的名称。如果可以提高可读性,可以在模块名称中使用下划线。

  2. 我已经使用与您的问题中相同的文件夹结构测试了导入,并且没有显示错误。

参考:

  1. /sf/answers/1165099631/
  2. 在python中,如何导入以数字开头的文件名
  3. PEP 8——Python 代码风格指南