0

我目前有一个Python文件,需要导入父目录中的另一个Python文件。问题是我想要导入的文件的名称以数字开头。从父目录导入模块以数字开头

文件的结构如下:

parent/ 
├── 123.py 
└── child/ 
    └─── my_file.py 

我要导入的123.py文件,有没有办法来实现这一目标?

回答

3

不。这不是一个有效的Python模块名称。以一封信开头,称之为别的东西。

1

上一个答案是一个很好的建议,如果你命名一个模块/变量,你不应该用一个数字来启动它。但是如果你必须导入一个像这样命名的模块,它仍然是可能的。

例如,从模块123.py访问变量x

>>> from importlib import import_module 
>>> onetwothree = import_module('123') 
>>> onetwothree.x 

关于你的问题的另一部分,模块中的父目录之中,你可以先该目录添加到您的SYS路径:

>>> import sys 
>>> sys.path.append('path/to/dir') 
0

Read more about naming conventions from PEP 8

上面提到的,不是一个优选名称MODU因为它使事情变得比他们应该更复杂。 PEP 8还建议命名为小写,使用下划线来提高可读性。 PEP 8不是一套规则,而是一套准则。如果你需要模块名称作为数字是绝对必要的,你可以按照Lgiro的回答。

您可以导入的另一种方法是使用__init__.py文件和相关导入。

parent/ 
├──__init__.py 
├── parent.py 
└── child/ 
    ├───__init__.py 
    └─── child.py 
在child.py

from .. import parent 

Question related to relative import

然后